在EF6.1中执行存储过程时,数据库中CREATE TABLE权限被拒绝

本文关键字:TABLE CREATE 权限 数据库 拒绝 EF6 执行 存储过程 | 更新日期: 2023-09-27 17:49:18

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

CREATE TABLE权限被拒绝

对于信息,我已经在数据库上禁用了访问表的权限。因此,我使用存储过程来访问除sa用户之外的所有用户的数据。我进入SQL Server profiler查看查询实际上在做什么,并看到它试图创建我的实体的表。

这是我的代码:

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();

出现错误

在EF6.1中执行存储过程时,数据库中CREATE TABLE权限被拒绝

尝试从SQL server执行sp

EXEC proc_name

如果有效,不需要传递带有sp name

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

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