繁体   English   中英

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

[英]How can I use my own classes as edmx model classes?

我正在使用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了。

我解决了我的问题,

这些是我做的步骤:

  • 如果你还没有

    创建自己的域类;

  • 创建数据库

    创建表格

  • 创建Edmx

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

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

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

  • 现在右键单击Edmx> Properties

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

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

现在它会起作用。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM