2010-12-13 113 views
0

我剛開始在尋找新的實體框架CTP5代碼第一位。實體框架CTP守則第一列命名和關係

我有以下非常簡單的實體。

User 
int Id; 
Account Account; 

Account 
int Id; 
User AccountOwner; 
ICollection<User> Users; 

因此,帳戶擁有所有者(用戶)並且可以有多個用戶。這些關係被翻譯爲Accounts表和Users表。

在Users表中,我得到了兩個collumns,AccountIdAccountId1,有什麼辦法來控制這些列的生成名稱。此外,我實際上認爲會有有關AccountsAccountOwner屬性UserId列,但它似乎是參考上Users表代替。這將是非常好的不將具有AccountId...n所有鍵:)

+0

爲什麼特定用戶有多個帳戶? – 2013-01-25 07:28:48

回答

2

有幾件事情會在這裏的。

的用戶,並具有1個賬戶的情況:相互關係1它選擇你不想要的一側。沒有辦法讓它知道在哪個方面放它,所以你可以用流利的API或屬性來告訴它。很可能你想讓一邊是可選的,另一邊是強迫FK到達另一邊的需要的邊。

User 
... 
[Optional] 
Account Account; 

Account 
... 
[Required] 
User AccountOwner; 

或者您可以使用流利的API:

config.Entity<User>().HasOptional(u => u.Account).WithRequired(a => a.AccountOwner) 

如果按照智能感知上,你還可以使用約束屬性要連接的FK屬性了。

。如果他們仍然不喜歡什麼或者使用列屬性,例如重命名FK屬性

User 
[Column(Name="Id")] 
int Id; 

再或者用流利的API:

config.Entity<User>().Property(u => u.Id).HasColumnName("Id");