![](/img/trans.png)
[英]How can I 'hide' built in classes when I have written my own wrappers to said classes?
[英]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文件。
擦除“自定义工具”中写入的内容,并确保构建操作是EntityDeploy
删除自定义工具中写入的文本时,单击“输入”,然后构建解决方案
现在它会起作用。
从visual studio和项目文件夹中删除项目,重新创建它,然后重新启动初始步骤。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.