如何将自己的类用作edmx模型类?

时间:2017-01-05 20:10:26

标签: c# entity-framework-6

我正在使用EF 6。

我想将自己的域类用作edmx模型类,因此我删除了tt生成的模型类,并将edmx build Action更改为None。

当我尝试执行select时,我得到MetadataException

DbContext context = new DbContext("name=BaseObjectsEntities");
var u = context.Set<User>().Where(x => x.Id == 1).FirstOrDefault();

与生成的tt模型类完美配合,但不适用于我自己的类。

我应该做什么或配置我的课程与edmx链接。

ps:我的类的类和属性名称已经等于edmx的。

1 个答案:

答案 0 :(得分:2)

我解决了我的问题,

这些是我做的步骤:

  • 如果你还没有

      

    创建自己的域类;

  • 创建数据库

      

    创建表格

  • 创建Edmx

      

    现在仔细聆听,当你最终完成edmx的创建时,visual studio将在设计模式下打开edmx,不保存,不关闭,不做任何事情,只更改实体模型的名称及其属性(在表示模型的图块中,确保实体的名称和它的属性在域中指定,稍后我会告诉为什么不保存或关闭。

  

不要保存或关闭设计窗口,如果这样做并且你的域类在同一个项目中,它们将被创建emdx时生成的.tt类覆盖。

     

删除所有聚合到emdx并且不保存的.tt文件。

  • 现在右键单击Edmx&gt;特性
  

删除“自定义工具”中写入的内容,并确保构建操作为EntityDeploy

     

删除自定义工具中写入的文本后,单击“输入”,然后单击“构建解决方案”

现在它会起作用。

  • 我忘了提到如果这些步骤不起作用,则有一个秘密步骤:
  

从visual studio和项目文件夹中删除项目,重新创建它,然后重新启动初始步骤。

相关问题