Linq - SingleOrDefault和NerdDinner

时间:2010-06-22 23:52:38

标签: c# asp.net-mvc linq

我正在进入LinqToSql并使用NerdDinner教程。

我正在尝试理解语法,并希望以更详细的方式写出第一行中正在发生的事情,这有效。

问题:如何编写第一个查询,如注释掉的代码(不起作用)。

public Dinner GetDinner(int id){

        var result = db.Dinners.SingleOrDefault(d => d.DinnerID == id);

        //var result = from d in db.Dinners.SingleOrDefault
        //             where d.DinnerID == id
        //            select d;

        return (result);
    }

干杯

戴夫

1 个答案:

答案 0 :(得分:3)

不幸的是,您无法使用SingleOrDefault的声明版本。相反,将声明性LINQ语句包装在括号中,如下所示:

var result = (
              from d in db.Dinners 
              where d.DinnerID == id 
              select d
             ).SingleOrDefault();