【发布时间】:2013-05-10 22:49:36
【问题描述】:
我有两个属性完全相同的实体:
public class Oil
{
public Guid Id { get; set; }
public string Title { get; set; }
public int Price { get; set; }
public int Ammount { get; set; }
}
public class Filter
{
public Guid Id { get; set; }
public string Title { get; set; }
public int Price { get; set; }
public int Ammount { get; set; }
}
问题:
1) 我可以以某种方式将它们存储在一张桌子上吗?如果是这样,比怎么样?
2) 还是我应该实现继承?那是什么类型的呢?
编辑:
在我的情况下,这两个实体是相同的,它们将来不会有任何不同的属性。
我实现了 Table-per-Hierarchy 方法,但还有另一个问题
(我有另一种类型的油和过滤器):
public class Warehouse
{
public Guid Id { get; set; }
public ICollection<Filter> Filters { get; set; }
public ICollection<Oil> Oils { get; set; }
}
所以,当我创建数据库时,我会在其中得到 Warehouse_Id 和 Warehouse_Id1 字段。我不希望 Oil 和 Filter 类中包含 Warehouse 属性,我怎样才能在 db 表中只获取一个 Warehouse id 字段?
如果我在 OilFilterBase 类中包含 WarehouseId 作为属性,我将在数据库表中获得 3 个warehouse_id。
p.s. 我的Context 中也有DbSet<Oil> 和DbSet<Filter>,但没有DbSet<OilFilterBase>。
【问题讨论】:
-
试试这种方式 public class Oil : dbTable 和 public class Filter : dbTable 从一个 dbType 继承两种类型
标签: c# database entity-framework inheritance