我知道有关这个问题的问题已经被问了好几次(我已经全部阅读了)但是我仍然没有解决方案。 大多数处理代码优先设计可能发生的问题,但我做的是模型优先。
我熟悉EF,并且在我的解决方案中有其他工作模型。
问题:
每个 DbSet<>在我的上下文中被访问时抛出以下错误:
"类型' System.InvalidOperationException '的例外情况发生在EntityFramework.dll中但未在用户代码中处理
其他信息:实体类型xxx不是当前上下文模型的一部分。 "
我是如何创建模型的:
连接字符串:
<add name="Stratus_X_TestEntities" connectionString="metadata=res://*/PartsServiceModel.csdl|res://*/PartsServiceModel.ssdl|res://*/PartsServiceModel.msl;provider=System.Data.SqlClient;provider connection string="data source=Stratus;initial catalog=StratusX;persist security info=True;user id=user;password=password;multipleactiveresultsets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
此连接字符串与我的解决方案中来自不同(和工作!).edmx的连接字符串相同。
用法:
using (var ObjectContext = new TestEntities())
{
return ObjectContext.AccountingType.ToList();
}
TestEntities是DbContext。 任何尝试访问ObjectContext.AccountingType或任何其他DbSet&lt;&gt;导致错误。
我查过的内容:
有人可以考虑其他任何事情来尝试/检查吗?
感谢
答案 0 :(得分:0)
如果一切正常,只需从edmx中删除对象并重新添加即可。不知何故EF在内部失去了一些联系。这样做解决了我的问题
答案 1 :(得分:0)
我也是EF和.NET的新手,但我认为默认情况下,EF会搜索与上下文的类名相同的连接字符串,因此,可能是, 如果您将连接字符串名称更改为“ TestEntities ”,则可能会有所帮助。