C# EF忽略数据库生成选项。无

C# EF忽略数据库生成选项。无,c#,entity-framework,ef-code-first,primary-key,C#,Entity Framework,Ef Code First,Primary Key,我首先使用EF 6.1.3代码,但没有迁移,因为数据库已经存在。我有一个实体SRReports,具有以下属性: [Key, Required] [DatabaseGeneratedAttribute(DatabaseGeneratedOption.None)] public int FRID { get; set; } 实体框架忽略DatabaseGeneratedOption.None,并将TSQL发送到服务器,假设FRID是自动生成的。实体为FRID指定了一个值,但实体框架忽略该值,并假定

我首先使用EF 6.1.3代码,但没有迁移,因为数据库已经存在。我有一个实体
SRReports
,具有以下属性:

[Key, Required]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.None)]
public int FRID { get; set; }
实体框架忽略
DatabaseGeneratedOption.None
,并将TSQL发送到服务器,假设FRID是自动生成的。实体为FRID指定了一个值,但实体框架忽略该值,并假定该值是自动生成的。(这是通过检查发送到服务器的内容的跟踪来确认的)。例外消息是:

Message=无法将值NULL插入到“refid”列、表“RevLogon.dbo.SCIREPORTS”中;列不允许空值。插入失败。 声明已终止

我尝试使用fluentapi而不是(并且除了)注释

 modelBuilder.Entity<SCIREPORTS>()
            .HasKey(e => e.FRID);
 modelBuilder.Entity<SCIREPORTS>()
            .Property(e =>  e.FRID).HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);
我得到以下错误:


捕获到System.MissingMethodException HResult=-2146233069 Message=未找到方法:“System.Data.Entity.ModelConfiguration.Configuration.PrimitivePropertyConfiguration System.Data.Entity.ModelConfiguration.Configuration.PrimitivePropertyConfiguration.HasDatabaseGenerateOption(System.Nullable`1)”*

我已卸载并重新安装了EF软件包,但无法解决此问题。 如何让EF插入ID为的记录

以下是插入记录的基本代码:

public SRUserComp(string myemail, short mycounter, int myFRID, string myreptype, string mypassword)
    {   email = myemail;
        Counter = mycounter;
        reptype = myreptype;
        password = mypassword;
        FRID = myFRID;        }

public bool CreateSRRecord(DateTime repduedate,
        short repnumber)
{BSRModel mydb = new BSRModel(); 
sr = new SCIREPORTS();
sr.FRID = FRID;
sr.Counter = Counter;
sr.Final = true;
sr.RepDueDate = repduedate;
mydb.SCIREPORTS.Add(sr);
 mydb.SaveChanges();
return true; }   
在saveChanges语句之后,我从服务器上的sql探查器中获得以下语句:

    INSERT [dbo].[SCIREPORTS]([Counter], [RepDueDate], [RepArrivalDate],
    [SciAppDate], [Adminappdate], [legacyDate], [RepNumber], [Final], 
    [RepReminderID], [Notes], [HaimSaw], [ResAuthApprovDate])

    VALUES (@0, @1, NULL, NULL, NULL, NULL, @2, @3, NULL, NULL, NULL, NULL)

    SELECT [FRID]
    FROM [dbo].[SCIREPORTS]
    WHERE @@ROWCOUNT > 0 AND [FRID] = scope_identity()      

如何将实体插入数据库?插入后数据库中的数据是什么?键(PK)有赋值吗?我在原始帖子中添加了额外的代码来回答您的问题。“System.MissingMethodException”非常奇怪。。。您似乎使用了不匹配的DLL。还要检查您是否未包含.Net Framework中的EF。。。此外,无法识别的属性可能是不匹配的库。。。您也可以尝试使用EF 6.1.2.bubi。我怀疑你是对的,但我在获得正确的EF时遇到了困难。bin文件夹中的EF文件为6.1.3,即项目参考中引用的文件。我已经卸载并安装了两次EF。
    INSERT [dbo].[SCIREPORTS]([Counter], [RepDueDate], [RepArrivalDate],
    [SciAppDate], [Adminappdate], [legacyDate], [RepNumber], [Final], 
    [RepReminderID], [Notes], [HaimSaw], [ResAuthApprovDate])

    VALUES (@0, @1, NULL, NULL, NULL, NULL, @2, @3, NULL, NULL, NULL, NULL)

    SELECT [FRID]
    FROM [dbo].[SCIREPORTS]
    WHERE @@ROWCOUNT > 0 AND [FRID] = scope_identity()