我可以在設計視圖中進入EDMX並更新關聯的基數(1- ,0-等),但我想知道在這種情況下是否可以這樣做。如何告訴EntityFramework 5.0兩個實體之間存在一對一的關聯?
我有這兩個表,讓我們說:
User
-----
Id
UserProfile
-------------
Id
UserId
Stuff
一個用戶可能只有一個配置文件。因此,我已經設置了一個UNIQUE約束,不包括UserProfile
表中的UserId
列。另外,UserProfile.Id
被定義爲引用User.Id
的外鍵。
然而,在實體框架模型,我得到如下:
class User
{
ICollection<UserProfile> UserProfiles { get; set; }
}
起初,我有UserProfile
表沒有自己的任何這樣的主鍵:
UserProfile
--------------
UserId
Stuff
但EntityFramework將它設置爲只讀,因爲它需要在每個要使其可寫的表上有主鍵。所以,我在UserProfile
表中也輸入Id
列。
UPDATE
我試着設置在我的EDMX在設計師的User
表和UserProfile
表之間的關聯的multiplicit /基數。但是,我得到這個錯誤提示我應該回到原來的狀態,即一對多的關係。
Running transformation: Multiplicity is not valid in Role 'UserBasicProfile'
in relationship 'FK_UserBasicProfile_User'. Because the Dependent Role
properties are not the key properties, the upper bound of the multiplicity
of the Dependent Role must be *.