假设我有以下类结构。当我将它映射到表格时,我会创建四个表格:' Order' OrderId为主键,OrderDate为日期/时间列的表; '的OrderDetail' OrderId是主键,是' Order'的外键。表格('说明'将是' OrderDetail'表格的另一列)。 '地址'使用OrderId作为主键的表和“OrderDetail”的外键#39; table(' Address' table也包含address1和city),最后是' ExtraStuff' OrderId作为主键的表和&OrderDetail的外键。到目前为止一切都很好。
现在提出问题。假设,我想删除'描述'来自OrderDetail类。映射它的最简单方法就是删除'描述'来自&OrderAetail'的列表,但这会使OrderDetail表只有一个OrderId列,这是我不想要的。我如何在我的案例中使用OrderDetail类,以便我不用一列创建OrderDetail表?我想在逻辑上使用OrderDetail,但有'地址'和' ExtraStuff'表使用来自' Order'的OrderId表
public class Order
{
public int OrderId { get; set; }
public DateTime OrderDate { get; set; }
public virtual OrderDetail Detail { get; set; }
}
public class OrderDetail
{
public OrderDetail()
{
this.Addresses = new HashSet<Address>();
this.Extra = new HashSet<ExtraInfo>();
}
public int OrderId { get; set; }
public string Description { get; set; }
public virtual ICollection<Address> Addresses { get; private set; }
public virtual ICollection<ExtraInfo> Extra { get; private set; }
}
public class Address
{
public int OrderId { get; set; }
public string Address1 { get; set; }
public string City { get; set; }
}
public class ExtraInfo
{
public int OrderId { get; set; }
public string SomeStuff { get; set; }
}
答案 0 :(得分:1)