模块化棱镜应用中的实体连接

时间:2012-10-23 20:05:52

标签: entity-framework prism connection-string

连接字符串Meta:

                res://Xz.Business.xModule/Model.RecordzModel.csdl|
                res://Xz.Business.xModule/Model.RecordzModel.ssdl|
                res://Xz.Business.xModule/Model.RecordzModel.msl;

错误:

将Business.xModule添加到配置文件的URI中后:

+       base    {"Unable to load the specified metadata resource."} System.Data.EntityException {System.Data.MetadataException}

- 将Xz.Business.xModule添加到配置文件的URI中后:

+       base    {"Unable to resolve assembly 'Xz.Business.xModule'.":null}  System.IO.IOException {System.IO.FileNotFoundException}

xModule信息:

程序集名称:Business.xModule

默认命名空间:Xz.Business.xModule


文件夹位置:

解决方案文件夹和xModule模块文件夹

解决方案位置.. \ x1 \ x2 \ xModule位置

模块位置 解决方案位置.. \ Build

“..”表示文件夹。


注意:

  1. 模块具有Post-Build Action,可将结果程序集放入“Build Folder”
  2. 配置的其他部分是正确的。
  3. 使用Unity,SQL CE,EF 5.0。
  4. 如何解决此实体连接问题?

2 个答案:

答案 0 :(得分:1)

如果您想使用其他数据库,orm或服务,您会后悔这样做。您可以使用repository pattern。这抽象了所有这些。您可以在一个处理数据的模块中实现所有存储库,而其他存储库可以通过依赖注入来使用它们。 This thread解释了更多。

答案 1 :(得分:1)

如果我在加载嵌入资源时遇到问题,我通常会使用ILDASM或者反射器来获取资源名称。在EF连接字符串中,您可以提供保存为文件或嵌入资源的工件的路径。 res://表示嵌入资源。在res://之后,您输入了确切的资源名称(如ILDASM所示)。如果资源位于文件夹中,您可以使用res://*/{resourceName}表示要在所有文件夹中搜索。