使用sql server在EF6查询中返回null值

时间:2016-10-13 09:50:37

标签: c# asp.net sql-server entity-framework

我正在使用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#中做一些逻辑。可以帮到谁?

1 个答案:

答案 0 :(得分:2)

将您的程序更改为仍然返回&#34;集合&#34;在这两种情况下。然而在第二种情况下,它将是一个空集合,因此将达到&#34;默认&#34; FirstOrDefault

BEGIN    
    if (some logic)
        select  top 1 * from tblBarCodeInv
    else 
        SELECT TOP 0 * from tblBarCodeInv 
END