我正在尝试解决一个基本问题,但有点卡住了。
我有一个基类:
public abstract class EntityBase<TEntity> where TEntity : class
{
public virtual int Id { get; set; }
public virtual DateTime DateCreated { get; set; }
public virtual DateTime DateModified { get; set; }
}
所有保存到数据库(使用 EF)的类都会继承。
然后我有一个复杂的类型:
public class Address
{
public virtual string ContactName { get; set; }
public virtual string Line1 { get; set; }
public virtual string Line2 { get; set; }
public virtual string Line3 { get; set; }
public virtual string City { get; set; }
public virtual string State { get; set; }
public virtual string PostalCode { get; set; }
public virtual string Country { get; set; }
}
还有一个 CustomerAddress
,它与 Address
类型具有相同的字段,但需要持久化到数据库。
public class CustomerAddress : EntityBase<CustomerAddress>
{
public virtual int CustomerId { get; set; }
public virtual string ContactName { get; set; }
public virtual string Line1 { get; set; }
public virtual string Line2 { get; set; }
public virtual string Line3 { get; set; }
public virtual string City { get; set; }
public virtual string State { get; set; }
public virtual string PostalCode { get; set; }
public virtual string Country { get; set; }
}
我知道在 C# 中一次只能继承一个类,但是我怎样才能使这项工作顺利进行,以便基本上 CustomerAddress
继承这两个类?
有什么想法吗?
最佳答案
如果使用 Address
作为实体类 CustomerAddress
的参数会怎样?
public class CustomerAddress : EntityBase<CustomerAddress>
{
public int CustomerId { get; set; }
[ForeignKey("CustomerId")]
public virtual Customer Customer { get; set; }
public Address BaseAddress { get; set; }
}
关于C# 继承挑战,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23186332/