我正在使用Sp生成一些逻辑并返回一个表对象。如果没有找到对象我只是简单地返回一个实体的null
CREATE proc SpDealerDistributionOracle
(
@DealerCode varchar(50),
@imei varchar(50)
)
as
BEGIN
if (some logic)
select top 1 * from tblBarCodeInv
else
select null;
END
工作正常..但是当我在EF 6中写这样的查询时
tblBarCodeInv returnValue = null;
using (var db=new RBSYNERGYEntities())
{
String query = String.Format("SpDealerDistributionOracle 'DealerCode','101001'");
returnValue = db.Database.SqlQuery<tblBarCodeInv>(query).FirstOrDefault();
}
return returnValue;
它引发了异常。
我只想返回一个对象,如果没有找到返回null并在C#中做一些逻辑。可以帮到谁?
答案 0 :(得分:2)
将您的程序更改为仍然返回&#34;集合&#34;在这两种情况下。然而在第二种情况下,它将是一个空集合,因此将达到&#34;默认&#34; FirstOrDefault
BEGIN
if (some logic)
select top 1 * from tblBarCodeInv
else
SELECT TOP 0 * from tblBarCodeInv
END