-1

我通常使用带有IQueryableIEnumerable的 linq to sql来获取如下数据:

    public static IQueryable getSomething() 
    {
        var getit = from d in database.table select d;

        return getit;
    }

它工作正常,但我试图像这样使用 select new :

    public static IQueryable getSomething() 
    {
       var getit = from d in database.table select new 
       { 
          value1 = d.1,
          value2 = d.2
       };

    return getit;
}

这是一个示例代码,而不是实际代码。

但这不起作用,我该怎么做?

谢谢

4

1 回答 1

1

您不能在 C# 中将任何方法键入为匿名类型的显式类型。可以说它们不能被“命名”,因此不能出现在元数据签名中。

https://stackoverflow.com/a/1070564/971839

首先,您需要创建一个类,例如,

public class MyClass
    {

        public string Property1{get;set;}
        public string Property2{ get; set; }
    }

然后将您的方法替换为,

public static IEnumerable<MyClass> getSomething() 
        {
           var getit = from d in database.table select new 
          MyClass  { 
              Property1 = d.1,
              Property2 = d.2
                   };

        return getit;
    }
于 2013-01-02T22:24:21.793 回答