【问题标题】:DataType returned by linq query asp.netlinq 查询 asp.net 返回的数据类型
【发布时间】:2011-08-20 15:19:22
【问题描述】:

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

谢谢你

【问题讨论】:

  • 默认为anonymous data type。你想达到什么目标?
  • @Waqas Raja:感谢您的回复。我只想要一个函数来绑定我的网格。以便从任何地方调用该函数,并将数据绑定到我的网格视图,就像在数据表的情况下一样。你能给我发一份演示吗?

标签: asp.net linq entity-framework


【解决方案1】:

有许多可能的选项,但最简单的解决方案是使用 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();

【讨论】:

  • 以及如何在这个对象类型返回值上使用计数函数
【解决方案2】:

除了 Frazell 的回答:如果您希望查询具有已知的返回类型,这是完全可能的:

您必须创建一个简单的类,例如 Result,其中包含您想要包含在查询结果中的属性:

public class Result
{
    public string Name
    {
        get;
        set;
    }
}

然后,您可以创建一个命名类型,例如:select new Result {Name = ...},而不是创建一个匿名类型:select new {Name = ...}。然后查询的结果变成IQueriable<Result>。如果你打电话给.ToList(),它会变成List<Result>,通过调用.Single(),你会得到一个简单的Result

【讨论】:

    【解决方案3】:

    它将是您调用产生的对象的类型。因此,如果您的函数将返回一个字符串类型的对象,那么它将是一个字符串。

    LINQ 使用anonymous types,因此它可以与表达式中的对象具有相同的类型。如果需要,也可以动态创建新类型。

    您可能想查看MSDN on LINQ

    【讨论】:

      猜你喜欢
      • 2012-12-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多