相关疑难解决方法(0)

实体框架EF4.1 - 存储过程"无法在容器中找到"

我的数据库中有一个SP.对于EF4.1,使用DbContext API.

从数据模型导入函数后,对存储过程的引用在我的开发环境中正常工作.但是当发布到服务器时,它会失败并显示如下消息:在容器'TallyJ2Entities'中找不到FunctionImport'SqlSearch'.所有其他数据访问工作正常.

似乎在生产中,EF4配置的某些方面被遗忘了.

数据库是相同的,两个服务器都是SQL 2008(本地是Express SP1 10.50.2500,主机是Express RTM 10.50.1600).

我甚至将EDMX编辑器直接指向生产数据库,并进行了更新.结果在开发中运行良好,但在服务器上以相同的方式失败.

其他类似的问题在这里没有帮助.其他人似乎有类似的问题在这里输入链接描述.

有什么建议?

更新:我发现在调试模式下部署主机时问题就消失了!

在我的DbContext派生类中,我把这段代码:

((IObjectContextAdapter)this).ObjectContext.MetadataWorkspace
var findFunction = metadataWorkspace.GetItems(DataSpace.SSpace)
            .SelectMany(gi => gi.MetadataProperties)
            .Where(m=> Equals(m.Value, "SqlSearch"))
            .Select(m => "Found {0}".FilledWith(m.Value))
            .FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)

当我记录findFunction结果时,事实证明服务器(在发布模式下)没有找到它,而在开发中,它被找到了.

c# sql-server-express sql-server-2008 entity-framework-4.1 appharbor

7
推荐指数
2
解决办法
2万
查看次数