2 回答

TA貢獻1946條經(jīng)驗 獲得超3個贊
因為這告訴 EF 用于存儲鏈接的“用戶”記錄的 id 的外鍵字段名為“Users_ID”。
如果您沒有明確需要在您的Sims實體中提供該字段,那么您可以完全忽略它并且您根本不需要擁有 ForeignKey 屬性 & EF 將在幕后為您管理它。
或者,您可以將外鍵字段命名為“UsersId”,由于約定,它將假定這是外鍵。
所以這些中的任何一個都應(yīng)該完全沒問題:
//no explicit foreign key
public class Sims
{
public int ID { get; set; }
public Users Users { get; set; }
}
//explicit foreign key but EF works it out via convention
public class Sims
{
public int ID { get; set; }
public int UsersId { get; set; }
public Users Users { get; set; }
}
//explicitly named foreign key which is named differently from
//convention so needs to be pointed at. note nameof() operator
//which will give a compiler error should you rename it, so is
//better than a magic string
public class Sims
{
public int ID { get; set; }
[ForeignKey(nameof(Users))]
public int MyUsersFkField { get; set; }
public Users Users { get; set; }
}
您還可以將屬性添加到Users屬性并將其指向 Id 字段。
一個重要的注意事項是,如果您使用非常規(guī)命名的 FK 屬性并且根本不指定外鍵,那么 EF 將UsersId在基礎(chǔ)數(shù)據(jù)庫中創(chuàng)建一個 FK 字段并使用它(但這不會在您的模型)

TA貢獻1798條經(jīng)驗 獲得超3個贊
該[ForeignKey]
屬性會覆蓋外鍵的默認約定。它允許我們在其名稱與主體實體的主鍵屬性不匹配的依賴實體中指定外鍵屬性。
在您的情況下,這將在 Sims 表中創(chuàng)建名為 Users_ID 的外鍵列,從而防止在數(shù)據(jù)庫中生成 ID 列。
- 2 回答
- 0 關(guān)注
- 108 瀏覽
添加回答
舉報