2010-08-23 89 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