【问题标题】:Entity framework - create the csdl, ssdl and msl files实体框架 - 创建 csdl、ssdl 和 msl 文件
【发布时间】:2011-11-01 17:53:49
【问题描述】:

我使用 EF 4(目前不使用自跟踪实体)。我已向我的一个实体添加了一些列(其中没有一个是键,并且所有列都可以为空),并得到了 Number of members in conceptual type does not match with number of members on object side type 异常。
我遵循了接受的答案here,但我从中得到的只是这个实体不再出现在我的 edmx 中。我已从 DB 重新添加它,但我不断收到相同的异常。
我认为问题在于我已将 csdl/ssdl/msl 文件复制到我正在执行的程序集目录中。我想复制更新后的文件,但它们没有再次创建(它们曾经在我的 EF 项目的 obj\Debug\edmxResourcesToEmbed 文件夹中创建),即使在删除它们之后也是如此。
有什么方法可以再次创建这些文件?
谢谢。

PS:由于我不想发布过多的代码,所以我还没有添加任何内容,但我很乐意添加所需的信息,我只是不确定到底需要什么。

【问题讨论】:

  • 我和Noich 一样,但是我没有选择Embed in Output Assembly,而是选择了Copy To Output Directory,它对我有用

标签: entity-framework edmx


【解决方案1】:

所以如果要创建 csdl、ssdl amd msl 文件,请执行以下操作:

  1. 转到您的 edmx 文件。
  2. 单击显示模型的 GUI 屏幕。
  3. 切换到属性窗口(我不知道它需要从 GUI 区域访问,而不是通过右键单击解决方案资源管理器中的文件。
  4. Metadata Artifact Process 中选择Embed in Output Assembly

完成并完成,文件将显示在Debug\edmxResourcesToEmbed 下的objobj\x86,具体取决于您的构建定义。
如果这看起来很容易解释,我很抱歉,但我需要这些说明(msdn 没有很大的帮助),我希望它可以帮助其他人。

【讨论】:

  • 这是一个很好的答案,所以我会给你投票,它是否可以在 msdn 上使用?
  • 我不确定它是否在 MSDN 中。那是不久前的事了,但我认为是另一位开发人员在工作中帮助了我。
  • 如果您在使用 VS Publish 将 CSDL、MSL 和 SSDL 文件发布到 bin 目录时遇到问题,这也适用。 :)
  • 如果您没有 edmx 文件会怎样?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-02
  • 2011-09-01
相关资源
最近更新 更多