c# - 找不到方法 HasDatabaseGeneratedOption

标签 c# asp.net entity-framework asp.net-mvc-4

我已经阅读了所有与此相关的帖子,并且我已经尝试了所有但没有结果。

我正在使用 Fluent API 将我的模型映射到数据库。但是当我查询时我得到这个错误:

Method not found:

 'System.Data.Entity.ModelConfiguration.Configuration.DecimalPropertyConfiguration

System.Data.Entity.ModelConfiguration.Configuration.DecimalPropertyConfiguration.HasDatabaseGeneratedOption(System.Nullable`1<System.ComponentModel.DataAnnotations.Schema.DatabaseGeneratedOption>)'.

我的模型是这样的:

ToTable("table_name");
    HasKey(x => x.CounterId)//this property IS NOT NULLABLE
        .Property(x => x.CounterId).HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity)
        .HasColumnName("dbCounter_Id")
        .HasPrecision(10, 0)
        .IsRequired();

    Property(x => x.HouseId)
        .HasColumnName("dbHouseId");

    Property(x => x.ApplicationId)
        .HasColumnName("dbApplication_id");

出于某种原因 .HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity) 给我这个错误,所以当我退出它时:

HasKey(x => x.CounterId)
    .Property(x => x.PageId)
    .HasColumnName("dbCounter_Id")
    .HasPrecision(10, 0)
    .IsRequired();

我没有收到错误,但我很幸运当我尝试向该表添加记录时我得到insert identity exception .我既不能添加也不能退出 HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity) 方法。

重要提示:键 CounterId 不是 INTEGER 类型,而是 DECIMAL(10,0)。这可能是这里的问题吗?我无法更改列的数据类型,因为生产中有很多应用程序会以最坏的方式受到影响。

希望我能得到任何帮助。

最佳答案

你应该这样做

ToTable("table_name");
    HasKey(x => x.CounterId); // you should split HasKey from Property
    Property(x => x.CounterId)
        .HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity)
        .HasColumnName("dbCounter_Id")
        .HasPrecision(10, 0)
        .IsRequired();

    Property(x => x.HouseId)
        .HasColumnName("dbHouseId");

    Property(x => x.ApplicationId)
        .HasColumnName("dbApplication_id");

关于c# - 找不到方法 HasDatabaseGeneratedOption,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23571283/

相关文章:

c# - MySql 传递参数给出不同的结果

.net - 带有 Entity Framework 的存储库模式

c# - 防止数据网格在 C# 中加载 Entity Framework 导航属性

c# - SQL检查表是否存在于C#中,如果不存在则创建

C# 和 Java DES 加密值不相同

c# - 要属性(property),还是不要属性(property)?

c# - Entity Framework 中扩展部分类的放置

c# - 在 .net 中,我应该使用什么类来轻松处理数据库中的数据(不包括 Entity Framework 或 LINQ)

c# 生成带有图表模板的excel表格

asp.net - 系统.IO.FileLoadException : Loading this assembly would produce a different grant set from other instances