3
我試圖通過DbModel映射數據庫中存在的這種關係。實體框架的DbModel:如何使用連接表映射一對多關係?
CREATE TABLE core.Institutes
(
ID INT NOT NULL PRIMARY KEY IDENTITY(1,1),
Name NVARCHAR(128) NOT NULL,
OldID INT NULL
)
GO
CREATE TABLE core.InstitutePlaces
(
FKInstituteID INT NOT NULL PRIMARY KEY REFERENCES core.Institutes(ID),
FKPlaceID INT NOT NULL REFERENCES core.Places(ID)
)
GO
CREATE TABLE core.Places
(
ID INT NOT NULL PRIMARY KEY IDENTITY(1,1),
Name NVARCHAR(128) NOT NULL,
FKParentID INT NULL REFERENCES core.Places(ID),
OldID INT NULL
)
GO
這個模型
public class Place
{
public int Id { get; set; }
public string Name { get; set; }
public int? ParentId { get; set; }
public Place Parent { get; set; }
}
public class Institute
{
public int Id { get; set; }
public string Name { get; set; }
public Place Place { get; set; }
}
我們使用這樣的事情做的映射
modelBuilder.Entity<Institutes.Institute>().HasOptional(i => i.Place);
,但它不工作:(
此方案完全由EDML文件管理,所以問題只是關於映射。
我相信你的模型爲1 to *工作,導航屬性需要是ICollection研究所{get;設置;},啓用延遲加載,使屬性虛擬。這裏有一篇關於EFCF CPT5的好博客http://weblogs.asp.net/manavi/default.aspx –
Paul
2011-02-15 18:10:47
謝謝,但我們希望避免從地方到學院有一個導航屬性,因爲它對我們來說沒有任何意義從一個地方轉到其研究所或與該特定地點相關的其他實體。 – Kralizek 2011-02-16 09:57:32