在执行存储过程时,在EF6.1中的数据库中获取CREATE TABLE权限

时间:2016-06-24 04:51:59

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

我正在尝试使用代码优先方法从EF 6中的存储过程中获取一些记录。最初它正在工作,因为我使用'sa'登录连接字符串。当我更改连接字符串中的登录详细信息时,它开始抛出错误

  

数据库

中的CREATE TABLE权限被拒绝

有关我在数据库中禁用访问表的信息。因此,我使用存储过程来访问sa用户的所有用户例外的数据。我进入SQL Server探查器,看看查询实际上是在做什么,并看到它试图创建我的实体表。

这是我的代码:

public IEnumerable<_BankHoliday_SP> _BankHoliday_SP
{
    get
    {
        var content = _dbContext.Database.SqlQuery<_BankHoliday_SP>("exec spConfigBankHolidayGet");
        return content;
    }
}

当我尝试从ViewModel类访问数据时。

var bankHolidayList = _repository._BankHoliday_SP.ToList();

我收到了错误。

1 个答案:

答案 0 :(得分:0)

尝试从sql server

执行sp
  

EXEC proc_name

如果它工作,则不需要传递具有sp名称的exec

  var content = _dbContext.Database.SqlQuery<_BankHoliday_SP>("exec spConfigBankHolidayGet");

  var content = _dbContext.Database.SqlQuery<_BankHoliday_SP>("spConfigBankHolidayGet");