使用 Entity Framework 将存储过程的结果分配给变量

Assign the result of stored procedure into a variable using Entity Framework

我是 Entity Framework ORM 的新手,在使用 DataSet ORM 时我可以简单地将存储过程结果分配给变量,例如

 MyDataSetTblAdapter MyData = new MyDataSetTblAdapter();
 string Result = Mydata.MyStoredProcedure().ToString();

它工作正常..但在 Entity Framework 我正在尝试相同的

OnlineDvdShopDbEntities dbContext = new OnlineDvdShopDBEntities();
String Result = DbContext.SpAddGetUsername().ToString();

记住我的存储过程返回单个值

这很简单。

    // Initialize dependency to data entities
    private Entities _dataContext;
    public ClassName()
    {
        _dataContext = new Entities();
    }

    public IQueryable<EntityName> MethodName(string filter)
    {
        // Initialize 
        var records = _dataContext.Entity

                 // Constrain your results
                 .Where(
                         x => filter == null
                         || x.Property1.Contains(filter)
                       );
        return records;
    }

如果您只需要一个值,那么您可以使用

var records = _dataContext.Entity.FirstrDefault();

FirstOrDefault() 基本上 returns 序列中符合您的条件的第一个元素。您也可以使用 SingleOrDefault(),因为只需要一个结果。

https://msdn.microsoft.com/en-us/library/vstudio/bb340482%28v=vs.100%29.aspx https://msdn.microsoft.com/en-us/library/vstudio/bb342451%28v=vs.100%29.aspx