C# 如何将实体类型名称作为参数传递给泛型帮助器?

C# 如何将实体类型名称作为参数传递给泛型帮助器?,c#,asp.net-mvc,asp.net-mvc-3,linq,c#-4.0,C#,Asp.net Mvc,Asp.net Mvc 3,Linq,C# 4.0,我想编写一个通用帮助器,它采用实体类型名称并在其LINQ代码中使用它 public Boolean Eval( ) { var firstOrDefault = db.Class.OfType<Order>().FirstOrDefault; } public Boolean Eval() { var firstOrDefault=db.Class.OfType().firstOrDefault; } 如何传入Order作为类型名,使此代码更通用?我相信这与公共布尔求值(

我想编写一个通用帮助器,它采用实体类型名称并在其LINQ代码中使用它

public Boolean Eval( )
{
    var firstOrDefault = db.Class.OfType<Order>().FirstOrDefault;
}
public Boolean Eval()
{
var firstOrDefault=db.Class.OfType().firstOrDefault;
}
如何传入
Order
作为类型名,使此代码更通用?我相信这与

公共布尔求值()
{
var firstOrDefault=db.Class.OfType().firstOrDefault();
}
如果希望T始终为某个基类型,可以将其扩展为以下类型:

public Boolean Eval<T>( ) where T : YourBaseType
{
   var firstOrDefault = db.Class.OfType<T>().FirstOrDefault();
}
public Boolean Eval(),其中T:YourBaseType
{
var firstOrDefault=db.Class.OfType().firstOrDefault();
}
在没有任何约束的情况下,将有可能传递可能导致异常的任何类(即使是与您的实体和
DbContext
未连接的类)。在这种情况下,建议使用一些
try/catch
块来包装代码。

public Boolean Eval()
{
var firstOrDefault=db.Class.OfType().firstOrDefault();
}
如果希望T始终为某个基类型,可以将其扩展为以下类型:

public Boolean Eval<T>( ) where T : YourBaseType
{
   var firstOrDefault = db.Class.OfType<T>().FirstOrDefault();
}
public Boolean Eval(),其中T:YourBaseType
{
var firstOrDefault=db.Class.OfType().firstOrDefault();
}

在没有任何约束的情况下,将有可能传递可能导致异常的任何类(即使是与您的实体和
DbContext
未连接的类)。在这种情况下,建议使用一些
try/catch
块来包装代码。

使用
您将拥有一个泛型,其中
T
是一个实际类型,而不仅仅是一个类型的名称。但你的问题很清楚,下面你已经有了一个很好的答案。我只想在一张便条上给你指出:)谢谢。。。。欣赏
您将拥有一个泛型,其中
T
是一个实际类型,而不仅仅是一个类型的名称。但你的问题很清楚,下面你已经有了一个很好的答案。我只想在一张便条上给你指出:)谢谢。。。。感激