我不知道有什么办法。但是,如果您要使用实体代码生成器,您可以构建一个警告系统,以便在重新生成代码时您会立即收到通知(取决于您的构建策略)。
所以我要做的是对选定的实体,说实体是,然后有Request
问题的属性是Requestor
写一个测试来断言该属性不是虚拟的
[TestMethod()]
public void RequestPropertyRequestor_MustNotBeVirtual() {
PropertyInfo[] properties = typeof(Request).GetProperties()
.Where(p => p.GetGetMethod().IsVirtual).ToArray();
Assert.AreEqual(0, properties.Count(p => p.Name == "Requestor"), "Model Code Regenerated - change the Request Entity");
}
不确定反射代码的准确性,但你明白我的意思。这样,当实体重新生成并且您修改了代码时,测试将失败。预警系统
或者
您可以关闭代码生成并使用 POCO。
建议更改
如果您不想关闭代码生成,那么修改 T4 模板是可行的方法。只是
- 在 EDMX 设计器的属性中将“代码生成策略”设置为
None
,以便不会发生默认生成。这导致没有派生DbContext
类或实体类
- 在 EDMX 设计器中,右键单击绘图表面并选择“添加代码生成项”。那里应该列出生成器,如果不只是通过 NuGet 安装一个。选择 EF5 DbContext 之一。
- 找到实体生成的 T4 模板并进行修改。