我想在LINQ查询中创建一个具有多个表连接的公共函数。函数返回的函数的数据类型是什么。
谢谢
答案 0 :(得分:4)
但是,有许多可能的选项,最简单的解决方案是使用object
数据类型。
/// your public method
public object GetProducts()
{
// your complex query
// then return the anonymous type
retutn query.ToList();
}
然后将此对象直接绑定到gridvew。
gridView1.DataSource = myObject.GetProducts();
gridView1.DataBind();
答案 1 :(得分:2)
除了Frazell的回答:如果您希望查询具有已知的返回类型,这是完全可能的:
您必须创建一个简单的类,例如Result,其中包含您要包含在查询结果中的属性:
public class Result
{
public string Name
{
get;
set;
}
}
然后,您可以创建一个类似于select new {Name = ...}
的命名类型,而不是像select new Result {Name = ...}
那样创建一个匿名类型。然后查询的结果变为IQueriable<Result>
。如果您致电.ToList()
,它会变为List<Result>
并致电.Single()
即可获得简单的Result
答案 2 :(得分:0)
这将是您通话产生的对象类型。因此,如果您的函数将返回string类型的对象,那么它将是一个字符串。
LINQ使用anonymous types,因此它可以与表达式中的对象具有相同的类型。如果需要,也可以动态创建新类型。
您可能需要查看MSDN on LINQ。