EDMX正在覆盖密钥数据注释

时间:2013-09-06 16:42:15

标签: entity-framework edmx edmx-designer

这适用于EF 5和数据库优先建模。我的模型是使用现有数据库中的EF生成器构建的。

我在模型类中使用[Key]数据注释,因为主键字段的名称与EF约定不符。

一切正常,但是当我打开根EDMX文件时,模型类会更新,我所做的任何手动更改都会丢失。

我应该以不同的方式进行更改吗?

2 个答案:

答案 0 :(得分:1)

您可以更新T4模板,在主键上为您添加数据注释吗?

if (simpleProperties.Any())
{
    foreach (var edmProperty in simpleProperties)
    {
     if (ef.IsKey(edmProperty)){
#>
[Key]
<# } #>

答案 1 :(得分:0)

对我有用的解决方案是在上下文类中覆盖OnModelCreating方法中的EF约定。

protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        base.OnModelCreating(modelBuilder);

        modelBuilder.Entity<abk_Bookings>()
                    .HasKey(e => e.booking_number);}