【发布时间】:2013-09-10 20:07:33
【问题描述】:
这适用于 EF 5 和数据库优先建模。我的模型是使用现有数据库中的 EF 生成器构建的。
我在模型类中使用 [Key] 数据注释,因为主键字段的名称不符合 EF 约定。
一切正常,但是当我打开根 EDMX 文件时,模型类会更新,我所做的任何手动更改都会丢失。
我应该以不同的方式进行更改吗?
【问题讨论】:
标签: entity-framework edmx edmx-designer
这适用于 EF 5 和数据库优先建模。我的模型是使用现有数据库中的 EF 生成器构建的。
我在模型类中使用 [Key] 数据注释,因为主键字段的名称不符合 EF 约定。
一切正常,但是当我打开根 EDMX 文件时,模型类会更新,我所做的任何手动更改都会丢失。
我应该以不同的方式进行更改吗?
【问题讨论】:
标签: entity-framework edmx edmx-designer
对我有用的解决方案是在上下文类的 OnModelCreating 方法中覆盖 EF 约定。
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Entity<abk_Bookings>()
.HasKey(e => e.booking_number);}
【讨论】:
您可以更新您的 T4 模板以在主键上为您添加数据注释吗?
if (simpleProperties.Any())
{
foreach (var edmProperty in simpleProperties)
{
if (ef.IsKey(edmProperty)){
#>
[Key]
<# } #>
【讨论】: