我首先使用实体框架6和"模型"在我的解决方案中,我分离了我的数据模型"将类转换为另一个项目,以便我可以添加对"数据模型的引用"课程没有暴露我的"数据模型上下文"和连接。 我不想将我的实体数据模型项目(特别是数据库上下文等)暴露给我的UI层。我有这个:
我现在已经成功地将我的自动生成的实体类与我的数据模型分开了,我尝试通过在项目Mapeo.BusinessEntity中更新实体或属性来更新它。
这是我在DatabaseLayer(Mapeo.DatabaseModel)
中的连接字符串<connectionStrings>
<add name="MapeoModelContainer" connectionString="metadata=res://*/MapeoModel.csdl|res://*/MapeoModel.ssdl|res://*/MapeoModel.msl;provider=System.Data.SqlClient;provider connection string="data source=raranibar\ral;initial catalog=Mapeo;user id=sa;password=*****;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
</connectionStrings>
在我的服务层中,我将此连接字符串复制到App.config,我的问题是,当我想添加数据时,我有此消息:无法加载指定的元数据资源如何我可以解决这个问题吗?
更新 我找到了解决方案,我更改了App.Config中的连接字符串我在连接strign中替换的pretentation层&#34; *&#34;对于我的案例中的DataModel目录(Mapeo.DatabaseModel),现在这是我在图层演示中的连接字符串:
<connectionStrings>
<add name="MapeoModelContainer" connectionString="metadata=res://Mapeo.DatabaseModel/MapeoModel.csdl|res://Mapeo.DatabaseModel/MapeoModel.ssdl|res://Mapeo.DatabaseModel/MapeoModel.msl;provider=System.Data.SqlClient;provider connection string="data source=raranibar\ral;initial catalog=Mapeo;user id=sa;password=scugua;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient" />
</connectionStrings>
答案 0 :(得分:2)
如果您要加载元数据文件等问题,请使用正确的路径更新您的connectionString。可以帮助其他人......
connectionString="metadata=res://DatabaseModel/MyModel...
答案 1 :(得分:0)
创建实体后,如果数据库编辑,实体不起作用
只要实体更新
这样:
如果此方法不起作用
最好这样做:
<add name="MapeoModelContainer" ...
然后使用向导创建连接和实体
如果此方法不起作用,请发送
Inner exception
答案 2 :(得分:0)
当您将 EDMX 从一个项目复制到另一个项目时,您必须注意最初创建 EDMX 的文件夹的名称,因为它反映在 app.config(或 web.config)的连接字符串中与元数据资源相关。像这样:
//Initial model created in Folder1 in the original project
<add name="DataModelContainer" connectionString="metadata=res://*/Folder1.ServerModel.csdl|res://*/Folder1.ServerModel.ssdl|res://*/Folder1.ServerModel.msl;provider=System.Data.SqlClient;provider connection string= .../>
//Then manually copied to Folder2 in other project
<add name="DataModelContainer" connectionString="metadata=res://*/Folder2.ServerModel.csdl|res://*/Folder2.ServerModel.ssdl|res://*/Folder2.ServerModel.msl;provider=System.Data.SqlClient;provider connection string= .../>