linq查询asp.net返回的DataType

时间:2011-05-07 06:03:25

标签: asp.net linq entity-framework

我想在LINQ查询中创建一个具有多个表连接的公共函数。函数返回的函数的数据类型是什么。

谢谢

3 个答案:

答案 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