1

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

4

1 回答 1

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);
}

究竟什么是可能的取决于你的实体类是如何生成的,以及你想在你的过程中做什么。如果您无法弄清楚如何使其适应您的情况,您能否提供有关您正在尝试做什么的更多信息?

于 2012-07-24T10:16:47.833 回答