如何改变EntityFramework的代码生成策略

释义:
ADO.NET Entity Framework 是微软以 ADO.NET 为基础所发展出来的对象关系对应 (O/R Mapping) 解决方案。该框架曾经为.NET Framework的一部分,但version 6之后从.NET Framework分离出来。

背景:
公司使用的时老版本的EF框架,最新用vs2017生成model,从数据库更新模型之后,发现会产生两个CPOE_THIS5.tt文件,编译之后的model调用时找不到命名空间,仔细观察发现,旧版本在CPOE_THIS5.Designer.cs文件生成代码,从数据库更新模型之后,CPOE_THIS5.Designer.cs文件中的代码没有了,所有的代码都生成到CPOE_THIS5.tt文件中。

CPOE_THIS5.Designer.cs文件中的内容如下:

// 为模型“D:\Winning.Model.Cpoe\CPOE_THIS5.edmx”启用了 T4 代码生成。
// 要启用旧代码生成功能,请将“代码生成策略”设计器属性的值
// 更改为“旧的 ObjectContext”。当在设计器中打开该模型时,此属性会出现在
// “属性”窗口中。

// 如果没有生成任何上下文和实体类,可能是因为您创建了空模型但是
// 尚未选择要使用的实体框架版本。要为您的模型生成一个上下文类和实体
// 类,请在设计器中打开该模型,右键单击设计器图面,然后
// 选择“从数据库更新模型…”、“从模型生成数据库…”或“添加代码生成
// 项…”。

这里面的内容提示的很明确,要启用旧代码生成功能,请将“代码生成策略”设计器属性的值更改为“旧的 ObjectContext”

可还是一直没有找到到底如何修改“代码生成策略”。

其实上面的提示也很明显了,但是不仔细琢磨,还真转不过这个弯。

“当在设计器中打开该模型时,此属性会出现在“属性”窗口中。”

如果还不明白,那么一定要看下面的图片了,因为我从遇到这个问题,到今天决心要解决他,也是经历了好久的历程。

修改代码生成策略为“旧的ObjectContext之后”,CPOE_THIS5.Designer.cs中自动生成对象的代码,删除后缀[.tt]的文件,编译得到可用的Model文件。

①双击解决方案资源管理器的“CPOE_THIS5.edmx”对象,在设计器中打开“CPOE_THIS5.edmx[关系图1]”,空白处右键菜单打开属性窗口。属性
②在打开的属性窗口中,可以看到“代码生成策略”,修改为你想要的策略。
属性

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值