【发布时间】:2015-12-23 21:37:30
【问题描述】:
我有以下实体框架的数据模型。
我有抽象产品。每个产品都与一个产品类别相关。例如:
public abstract class Product
{
public int Id { get; set; }
public string Name { get; set; }
public Category Category { get; set; }
}
还有具体的产品:
public class ConcreteProduct1 : Product
{
// some specific member
}
public class ConcreteProduct2 : Product
{
// some specific member
}
//etc.
我有分层类别,例如:
public class Category
{
public int Id { get; set; }
public string Name { get; set; }
public Category Parent { get; set; }
public ICollection<Category> Children { get; set; }
public ICollection<Product> Products { get; set; }
}
每个类别都有ICollection<Product> Products。
问题:类别应该只与某些具体产品类型的产品相关。 IE。我需要能够将 Concrete Products 放入类别中,例如:
public Category<ConcreteProduct1> GetCategory<ConcreteProduct1> ()
{
// should return Category that contain ICollection<ConcreteProduct1>
}
如何在我的实体框架模型中描述此限制?或者可能有一些建立这些关系的最佳实践?
【问题讨论】:
标签: c# entity-framework