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