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



我使用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

Works fine ..但是当我在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#中做一些逻辑。有人能帮忙吗?

将过程更改为在这两种情况下仍然返回"collection"。然而,在第二种情况下,它将是一个空集合,因此将达到FirstOrDefault

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

最新更新