[英]Entity Framework CTP Code First column naming and relationships
我剛開始查看新的Entity Framework CTP5代碼的第一位。
我有以下非常簡單的實體。
User
int Id;
Account Account;
Account
int Id;
User AccountOwner;
ICollection<User> Users;
因此,帳戶擁有所有者(用戶),並且可以擁有許多用戶。 這些關系將轉換為DB表中的Accounts
表和Users
表。
在“用戶”表中,我得到兩個列AccountId
和AccountId1
,有什么方法可以控制這些列的生成名稱。 另外,我實際上希望Accounts
表上的AccountOwner
屬性有一個UserId
列,但似乎該引用位於Users
表上。 對於所有鍵都沒有AccountId...n
真的很好:)
這里發生了幾件事。
如果用戶和帳戶之間存在1:1的關系,則選擇您不想要的那一方。 沒有你告訴它就無法知道將它放在哪一側,所以你可以使用流暢的API或屬性來告訴它。 很可能你想讓一面是可選的,另外一面是強制FK到另一面的,例如
User
...
[Optional]
Account Account;
Account
...
[Required]
User AccountOwner;
或者,您可以使用流暢的API:
config.Entity<User>().HasOptional(u => u.Account).WithRequired(a => a.AccountOwner)
如果你遵循intellisense,你也可以使用約束屬性來連接FK屬性。
要重命名FK屬性(如果您仍然不喜歡它們),請使用Column屬性,例如
User
[Column(Name="Id")]
int Id;
或者再次使用流暢的API:
config.Entity<User>().Property(u => u.Id).HasColumnName("Id");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.