当我正在寻找映射到对象模型的记录时,我有类似的东西:
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()
,但它不起作用。
感谢您的帮助。
答案 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();