我有三张相同结构的表。我正在使用实体框架。我想创建只接受这三种类类型的泛型函数。但我不能在类型参数中给出多个类型。有什么办法吗?或者我只想添加基类,如何创建基类,因为它们是从实体生成的?
答案 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);
}
究竟有什么可能取决于您的实体类的生成方式,以及您希望在过程中执行的操作。如果你无法弄清楚如何根据你的情况进行调整,你能否提供更多关于你想要做什么的信息?