2011-05-07 73 views
2

我想在LINQ查詢中創建一個具有多個表連接的公共函數。函數返回的函數的數據類型是什麼。由linq查詢返回的數據類型asp.net

謝謝

+0

默認爲[匿名數據類型](http://www.google.com.pk/url?sa=t&source=web&cd=1&ved=0CBkQFjAA&url=http%3A%2F%2Fmsdn.microsoft。 COM%2Fen美%2Flibrary%2Fbb397696.aspx&EI = jOHETcCWH8SwhAeGtYiIBA與USG = AFQjCNHMvhwM6R1BXxYx5lUi_CPOLgC-EQ)。你想達到什麼? – 2011-05-07 06:08:05

+0

@Waqas Raja:謝謝你的回覆。我只想要一個函數來綁定我的網格。這樣該函數將在任何地方被調用,並且數據綁定到我的gridview,就像數據表的情況一樣。你能給我演示嗎? – 2011-05-07 06:18:51

回答

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(); 
+0

以及如何在此對象類型返回值上使用count函數 – rahularyansharma 2012-01-16 12:45:04

0

這將是您的呼叫產生的對象的類型。所以,如果你的函數將返回一個字符串類型的對象,那麼它將是一個字符串。

LINQ使用anonymous types,以便它可以與表達式中的對象具有相同的類型。如果需要,新的類型也可以動態創建。

您可能想要檢討MSDN on LINQ

2

除了Frazell的回答是:如果您想查詢有一個已知的返回類型,這是完全可能的:

你必須創建一個簡單的類,說結果,與性能要包括在查詢結果:

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

,然後,而不是像創建一個匿名類型:select new {Name = ...},你可以創建一個名爲類型,如:select new Result {Name = ...}。然後查詢的結果變成IQueriable<Result>。如果你打電話.ToList()變得List<Result>,並通過調用.Single()你得到一個簡單的Result