Code First 重複外來鍵

2021-07-09 08:30:46 字數 891 閱讀 4016

原因:在乙個表中,我有如下字段

表名:orderinfo

列名:companysend,companyreceiver

先展示表結構,(手打了,見諒)

public class orderinfo

public string name

public nullablecompanyid1

public nullablecompanyid2

[foreignkey("companyid1")]

public companyinfo company1

[foreignkey("companyid2")]

public companyinfo company2

}public class companyinfo

public string name

public listorder1

public listorder2

}

這裡我們看見,對於order,我存在了兩個關聯company的字段。

如果進入codefirst,那麼實際會出現問題。

大致是,對於companyid會出現4個字段,companyid1,companyid2,companyinfoid1,companyinfoid2

怎麼解決這個問題呢?

我們先明白,出現這個問題,主要是order雖然申明了foreignkey和欄位名稱。但是系統不知道應該對應 order1還是order 2

解決這個問題,我們只需要這個:

protected override void onmodelcreating(dbmodelbuilder modelbuilder)

Code First 指定外來鍵名稱

指定類外來鍵有注釋 dataannotation 和fluentapi兩種方式,目前掌握的知識我們先把dataannotation可用的四種方式總結如下 第一種方法 1 指定導航屬性,會自動生成外來鍵,命名規則為 表名 主鍵名 public class user public string name...

mysql 重複約束 MySQL重複外來鍵約束

當我嘗試匯入資料庫時?出現此錯誤 sql query alter table bid add constraint bid ibfk 4 foreign key auction contact id references auction contact auction contact id add ...

mysql外來鍵和外來鍵約束

1.mysql中 鍵 和 索引 的定義相同,所以外來鍵和主鍵一樣也是索引的一種。不同的是mysql會自動為所有表的主鍵進行索引,但是外來鍵字段必須由使用者進行明確的索引。用於外來鍵關係的字段必須在所有的參照表中進行明確地索引 2.如果表a的主關鍵字是表b中的字段,則該字段稱為表b的外來鍵,表a稱為主...