0
暴露我有一個連接表與相關的加入一個附加字段:實體框架代碼優先映射組合鍵在連接表,其中的外鍵被模型
VirtualDatastreamId INT NOT NULL
DatastreamId INT NOT NULL
FormulaElement INT NOT NULL
所有列是主鍵。這被映射到
的POCO是:
public class VirtualDatastreamMap
{
public virtual Datastream Datastream { get; set; }
public virtual VirtualDatastream VirtualDatastream { get; set; }
public virtual string FormulaElement { get; set; }
}
我沒有在模型外鍵的屬性,對我來說,一個外鍵的概念是一個實現細節,應該由封裝由班級指定的關係。如果可能的話,我不想添加這些。
如何將此圖與Fluent API進行映射?我希望這樣的事情下面的(不幸的是不工作):
modelBuilder.Entity<VirtualDatastreamMap>()
.HasKey(vdm =>
new
{
DatastreamId = vdm.Datastream.Id,
VirtualDatastreamId = vdm.VirtualDatastream.Id,
FormulaElement = vdm.FormulaElement
});
匿名類型的字段名必須被命名爲對象不能有兩個名稱相同的字段。
我從this question看到這個問題是在答案中提出的,但似乎沒有什麼更進一步。
如果不可能,哪個更好?
- 添加外鍵屬性到模型
- 一個
Id
字段添加到數據庫和模型
由於
滿意。我創建了外鍵屬性。這不是理想的,但它的工作原理。 – Daniel 2012-01-30 02:02:44