【发布时间】:2014-10-17 23:46:48
【问题描述】:
因此,我将一个不在 dbo(默认)架构中的数据库中的存储过程导入到我的实体模型中。
存储过程的名称不是 dbo.MyProc;而是:person.MyProc(注意架构名称是“person”,而不是“dbo”)
由于某种原因,当我尝试执行存储过程时,我收到一个错误,好像 EntityFramework 对 MyProc 是个人模式一无所知。以下是我尝试在代码中执行存储过程的方法:
using (var dbContext = new DataModel.PersonEntity())
{
dbContext.dbOp_DeletePerson(personId);
}
这是我得到的错误:
EntityCommand.CommandText 的值对 a 无效 存储过程命令。 EntityCommand.CommandText 值必须是 形式为“ContainerName.FunctionImportName”
稍微追溯一下,这是 Entity Framework 自动生成的代码行:
返回 ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction("dbOp_DeletePerson", 个人身份);
重申一下,dbOp_DeletePerson 位于“person”模式而不是 dbo。
提前感谢您的帮助!
【问题讨论】:
标签: c# sql-server entity-framework stored-procedures