【问题标题】:Specifying location of .csdl / .ssdl / .msl Metadata files within the output assembly在输出程序集中指定 .csdl / .ssdl / .msl 元数据文件的位置
【发布时间】:2012-02-21 09:33:55
【问题描述】:

我有一个 EF 项目,其中包含我已成功使用的数据模型。 “元数据工件处理”选项设置为“嵌入输出程序集”。

由于 .edmx 文件位于项目的根文件夹中,EntityConnectionStringBuilder 中使用的元数据字符串设置为:

res://*/myProject.csdl|res://*/myProject.ssdl|res://*/myProject.msl

在重组项目时,我将 .ecdm 文件移到了一个子文件夹中: /DataLayer/myProject/ 我将元数据字符串更改为:

res://*/DataLayer/myProject/myProject.csdl|res://*/DataLayer/myProject/myProject.ssdl|res://*/DataLayer/myProject/myProject.msl

这现在会导致错误(“指定的元数据路径无效”),但我看不出我在元数据中指定的文件夹路径有什么问题。

我知道我可以将 .ecdm 文件移回根目录,但我之前遇到过这个问题并且无法解决 - 是否有明显的遗漏?

【问题讨论】:

    标签: entity-framework entity-framework-4 edmx


    【解决方案1】:

    我终于解决了。

    文件夹应该用'.'分隔。不是'/'。

    元数据的正确格式是:

    res://*/DataLayer.myProject.myProject.csdl|res://*/DataLayer.myProject.myProject.ssdl|res://*/DataLayer.myProject.myProject.msl
    

    希望这可以避免有人用头撞墙一段时间!

    【讨论】:

    • 至少我只是撞了一会儿头。什么都感谢 EF!
    • 您可以通过使用 DotPeek 打开 DLL 并查看“资源”部分来找出元数据文件使用的名称;在那里您会看到 .csdl、.ssdl 和 .msl 文件及其全名。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-01
    相关资源
    最近更新 更多