2010-08-23 91 views
2

查詢其實我今天有兩個問題,但它們都是小:-)與LINQ基本問題

1)哪裏是在C#中學習LINQ/SQL選擇一個很好的資源?

2)說我有一個名爲模型,具有名稱,顏色,形狀的表。我如何做一個查詢來選擇任何列中不含有空值的行。

我已經試過:

var d = database.Portfolio.SelectMany(x => x.Model.Model1 != null); 

在此先感謝

編輯

看起來像var models = from p in database.Models.Where(x => x.Model1 != null) select p.Model1;

回答

4

我在的101 LINQ Samples打量了一番,當我開始使用LINQ。

如果你有一個LINQ DataContext,它通常是[datacontext-name]。[table]的形式。 所以如果你的表被命名爲Model,它應該是[datacontext-name] .Model或者在你的情況下爲database.Model

你在談論一個名爲Model的表,但是在你的代碼中你正在從一個叫做Portfolio的東西中進行選擇,這有點令人困惑。但無論如何,這樣的事情應該可行。

​​

編輯 通過的意見,這個答案看起來,問題的外觀是你寫我們的查詢時,查詢混合模式和方法模式。

//Query mode 
var models = from p in datDB.Models 
      where p.Model1 != null 
      select p; 

//Method mode 
var models = datDB.Models.Where(p => p.Model1 != null); 

這只是編寫LINQ語句的不同方法。

+0

group子句或select子句預期 – baron 2010-08-23 05:29:33

+0

@baron - 你得到一個例外與上述代碼?我想我們需要更多關於你的數據上下文的信息。 – 2010-08-23 05:33:37

+0

不能編譯。 jesper是對的我已經改變了:var models = from datas.Models.Where(x => x.Model1!= null)'。問題是:查詢主體必須以select子句或group子句結束。 – baron 2010-08-23 05:35:39