C# 如何将实体类型名称作为参数传递给泛型帮助器?
我想编写一个通用帮助器,它采用实体类型名称并在其LINQ代码中使用它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作为类型名,使此代码更通用?我相信这与公共布尔求值(
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
是一个实际类型,而不仅仅是一个类型的名称。但你的问题很清楚,下面你已经有了一个很好的答案。我只想在一张便条上给你指出:)谢谢。。。。感激