gpt4 book ai didi

C#继承挑战

转载 作者:行者123 更新时间:2023-11-30 20:49:46 25 4
gpt4 key购买 nike

我正在尝试解决一个基本问题,但我有点卡住了。

我有一个基类:

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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com