我想编写一个通用助手,它使用实体类型名称并在其LINQ代码中使用它。
public Boolean Eval( )
{
var firstOrDefault = db.Class.OfType<Order>().FirstOrDefault;
}
如何传递Order
作为类型名称以使此代码更通用?我相信这与<T>
答案 0 :(得分:6)
public Boolean Eval<T>( )
{
var firstOrDefault = db.Class.OfType<T>().FirstOrDefault();
}
如果您希望T应始终具有某种基本类型,则可以将其扩展为以下内容:
public Boolean Eval<T>( ) where T : YourBaseType
{
var firstOrDefault = db.Class.OfType<T>().FirstOrDefault();
}
没有任何约束,就有可能传递任何类(甚至是与yor实体和DbContext
无关的类),这可能会导致异常。在这种情况下,可能建议用一些try/catch
块包装代码。