能否实体框架,忽略了我在实体实现接口的事实呢?情况是我有一个实现了IModelObject接口的Tag类,它定义了实现它的每个类都需要具有Id属性。该类如下:实体框架代码优先不允许实体,实现接口直接
public class Tag : IModelObject, IEquatable<Tag>
{
[ScaffoldColumn(false)]
public virtual int Id
{
get;
set;
}
[Required]
public virtual string Name
{
get;
set;
}...
}
而我的域模型中的每个实体都实现了IModelObject。没有基类,只有一个接口。默认映射工作,但在数据库Discriminator列中添加。而这个鉴别器不是我的域模型的一部分,所以我不需要它在我的数据库中。
实现一个接口不继承,我也实现了IEquatable接口。那么为什么实体框架的行为就像这是继承,并添加了Discriminator列,并且如何通过不使用基类或抽象类来避免这种情况?
是否适合你的[NotMapped]属性的工作?你必须设置上通过在接口的每个实现接口(一个或多个)中定义的每个属性... – Mufaka
modelBuilder.Ignore解决了这个问题,我没有提到的MissingTag类的问题,因为我忘了或者没有想到与这个问题有关。 –
gljivar