【问题标题】:EF 6 Database First Code generation itemEF 6 Database First Code 生成项
【发布时间】:2016-12-13 23:07:32
【问题描述】:

我在 Visual Studio 2015 中使用 Entity Framework 6 Database First。 有时当我修改 .edmx 图表并保存更改时,所有 .cs 类(用于表)都从代码生成 model.tt 文件中删除,我无法让这些返回。 也只是为了从零创建实体数据模型。

有人知道这个问题的原因是什么,我应该如何解决这个问题?

感谢任何帮助。

我已经用这个修改了我的实体数据模型:(不知道可能是原因还是其他)

*EF5 Grdiview only Count & ReadOnly /之后打开 yourModel.tt 文件 找到两次出现的“ICollection”并将其替换为“ObservableListSource”(第 296 和 484 行)。 查找第一次出现的“HashSet”并将其替换为“ObservableListSource”(第 50 行)。 不要替换后面代码中第二次出现的 HashSet。/*

【问题讨论】:

  • 您是否尝试重新构建项目?正常行为是当你重建它应该重新创建类。
  • 我尝试重建并尝试删除 .tt 文件,然后重新创建这些文件,但问题仍然存在。也许我应该先使用数据库中的代码还是什么?

标签: c# entity-framework observablelist


【解决方案1】:

您正在使用数据库优先方法并手动修改 .edmx,因此模型无法在 db 表中找到相应的映射。如果您想手动更改 .edmx,请尝试使用模型优先的方法,或者尝试先更改数据库,然后再更新您的 .edmx。

【讨论】:

    【解决方案2】:

    如果没有生成类,这意味着edmx文件中有错误,请尝试打开它并验证它,您可以通过右键单击edmx文件并单击验证来验证。

    对于.tt文件,右键选择“运行自定义工具”,看看代码是否生成。

    建议:切换到代码优先 :)

    【讨论】:

    • 我只是修改了 edmx 并添加了一个没有 PK 的新实体。我的老师说我应该为类似的实体开设一个家长班。示例 NameTitle、Language 等。这些相同,只是它们具有 ID(NameTitleID,LanguageID)和一个字符串(描述,具有不同的长度)。当我想到一个具有这 2 个道具并从它继承其他人的实体时,发生这种情况之后就丢失了。但它也发生了,当我修改数据库,从数据库刷新并保存 edmx 时。 ObservableListSource 可能是原因,还是什么?
    • 对不起,我很难理解您的评论,您不应该手动修改 edmx 或更改生成的代码,因为代码生成器运行时它会丢失
    猜你喜欢
    • 2011-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-02
    • 1970-01-01
    相关资源
    最近更新 更多