实体框架 - 如何为实体类创建基类?

时间:2012-07-24 10:07:49

标签: c# entity-framework

我有三张相同结构的表。我正在使用实体框架。我想创建只接受这三种类类型的泛型函数。但我不能在类型参数中给出多个类型。有什么办法吗?或者我只想添加基类,如何创建基类,因为它们是从实体生成的?

1 个答案:

答案 0 :(得分:5)

最简单的方法可能是不使用基类,而是使用接口。我们假设共同属性是string Name,那么你可以做

interface IEntityWithName
{
    string Name { get; set; }
}

// make sure this is in the same namespace and has the same name as the generated class
partial class YourEntity1 : IEntityWithName
{
}

// ditto
partial class YourEntity2 : IEntityWithName
{
}

public void DoSomething<T>(T entity)
    // if you have no common base class
    where entity : class, IEntityWithName
    // or if you do have a common base class
    where entity : EntityObject, IEntityWithName
{
    MessageBox.Show(entity.Name);
}

究竟有什么可能取决于您的实体类的生成方式,以及您希望在过程中执行的操作。如果你无法弄清楚如何根据你的情况进行调整,你能否提供更多关于你想要做什么的信息?