2013-01-02 88 views
-1

我通常使用LINQ與IQueryable的的IEnumerable得到這樣的數據,SQL:LINQ to SQL的使用選擇新的內部類文件

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

     return getit; 
    } 

,它工作正常,但我想使用新的選擇與這樣的:

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

    return getit; 
} 

這是一個示例代碼,而不是實際的代碼。

但這不行,我該怎麼做?

感謝

+0

可能重複 - http://stackoverflow.com/questions/534690/linq-sql-return-anonymous-type –

+0

@rs。 - 沒有通知,投票結束 – Wahtever

回答

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; 
    } 
+0

工作正常,但你可以請進一步解釋? – Wahtever

+0

還有同樣的問題。 http://stackoverflow.com/questions/1070526/how-to-return-anonymous-type-from-c-sharp-method-that-uses-linq-to-sql – halit

+0

不,我的意思是你可以請進一步解釋如何這段代碼有效嗎? – Wahtever