我有两个从同一个基类继承的类。这是代码的一部分:
public abstract class baseclass
{
public virtual int? MyObjectID { get; set; }
public virtual Object MyObject { get; set; }
}
public class Derived1 :baseclass
{
}
public class Derived2 : baseclass
{
}
在使3列表示相同属性的数据库中: MyObjectID MyObject_ID MyObject_ID1
所以我无法将值发送到数据库。它只能是一列:MyObjectID 如何防止重复的列?
答案 0 :(得分:0)
我用Fluent Api解决了这个问题
modelBuilder.Entity<AnotherObject>().Ignore(o => o.Derived1);
modelBuilder.Entity<AnotherObject>().Ignore(o => o.Derived2);
modelBuilder.Entity<Object>().Ignore(o => o.AnotherObject);
现在我有另一个问题。我需要设置Derived类的baseclass属性之一。
public abstract class BaseClass
{
public virtual string MutualString { get; set; }
}
public class Derived1 :BaseClass
{
public virtual Object1 Kisi { get; set; }
public override string MutualString
{
get { return Kisi.TamAd; } //*TamAd is string.
set { value = Kisi.TamAd; }
}
}
public class Derived2 : BaseClass
{
public virtual Object2 Firma{ get; set; }
public override string MutualString
{
get { return Firma.TamAd; }
set { value = Firma.TamAd; }
}
}
尝试列出时出现错误。 “ System.NullReferenceException:'对象引用未设置为对象的实例。'”但它不是null