簡體   English   中英

實體框架CTP代碼第一列命名和關系

[英]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表。

在“用戶”表中,我得到兩個列AccountIdAccountId1 ,有什么方法可以控制這些列的生成名稱。 另外,我實際上希望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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM