EF6:ObjectContext.ExecuteStoreQuery返回空List

时间:2014-11-04 12:25:23

标签: c# sql-server entity-framework

我有以下情况:

在数据库中:

  • 存储过程:gp_get_location

  • 在我的项目(EF6)中,我有一个DbContext对象

    public List<Location> GetLocation(int LocationId, int Top = 100)
    {
        var prmLocationID = new SqlParameter("location_id", SqlDbType.Int)
        {
            Value = LocationId
        };
    
        var prmTop = new SqlParameter("top", SqlDbType.Int)
        {
            Value = Top
        };
    
        ((IObjectContextAdapter)this).ObjectContext.CommandTimeout = 300;
    
        var query = ((IObjectContextAdapter)this).ObjectContext.ExecuteStoreQuery<Location>(@"EXECUTE [dbo].[gp_get_location] @location_id, @top", prmLocationID, prmTop);
    
        return query.ToList();
    }
    

在管理工作室中执行存储过程,如下所示:

exec gp_get_location X, 100 -- returns 100 results

exec gp_get_location Y, 100 -- returns 100 results

执行上下文功能:

GetLocation(X, 100) //returns 100 results

GetLocation(Y, 100) //NOT CORRECT - returns 0 results, no exception no warning just 0 

这种奇怪的行为可能是什么原因,我怎么能把它传到根?

1 个答案:

答案 0 :(得分:0)

这是一个非常老的问题,看起来从未像现在这样回答过。我假设您已将其修复,但以防万一,请检查您的Location对象。确保成员是“属性而不是字段”。