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