在Linq-to-SQL查询中返回null或object

时间:2013-11-21 14:31:24

标签: c# linq-to-sql

当我正在寻找映射到对象模型的记录时,我有类似的东西:

var Output = (from x in MyDC.SomeTable
              where  ....
              select new SomeObjectModel()
              {
                 SomeProp = x.SomeColumnField

              }.Single();

现在,我想返回对象,但只有在找到对象时才会这样做:

var Output = (from x in MyDC.SomeTable
              where ....
              orderby x.SomeTime descending
              select s).FirstOrDefault();

这告诉我是否找到了对象,并且从那里开始,我希望能够检索SomeObjectModel()并填写其属性,但前提是有一个元素是使用。FirstOrDefault()语句找到的并将所有这些组合成一个查询。我尝试在Select之后添加.FirstOrDefault(),但它不起作用。

感谢您的帮助。

2 个答案:

答案 0 :(得分:3)

在您的第一个版本中使用FirstOrDefault。如果您只期望单个项目或null,也可以使用SingleOrDefault

var Output = (from x in MyDC.SomeTable
              where  ....
              select new SomeObjectModel()
              {
                 SomeProp = x.SomeColumnField

              }.SingleOrDefault(); //if only single item is expected or null

return Output;

答案 1 :(得分:1)

var OutputAsModel = (from x in MyDC.SomeTable
where ....
orderby x.SomeTime descending
select s).Select(o=>new SomeObjectModel(o)).FirstOrDefault();