实体框架5 .NET 4.0 - DatabaseGeneratedOption.Identit

2019-06-27 13:49发布

我需要使用EF5在.NET 4中,我已经用它不会在4.0版本库的存在HasDatabaseGenerationOption.Identity映射我上课的时候碰到一个参考的问题。

以下是失败的:

this.Property(t => t.DeploymentLogId)
              .HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);

有谁知道作品的身边?

Answer 1:

使用的NuGet添加到的EntityFramework面向.NET 4.5的项目,将新增的EntityFramework 5.0。

如果以后更改该项目以面向.NET 4.0,5.0的EntityFramework仍引用。

为了解决这个问题,使用的NuGet卸载的EntityFramework,并添加回来,也的NuGet。 这将增加的EntityFramework 4.4这是.NET 4.0的最后一个支持的版本。

如果仍不能正常工作有可能会在特定的EF版本提供一些参考App.config 。 这些可以被删除。



Answer 2:

命名空间中的EF 5.0改变。 尝试添加此:

using System.ComponentModel.DataAnnotations.Schema;


Answer 3:

你有没有使用数据标注试过吗?

public class DeploymentLog
{
   [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int DeploymentLogId { get; set; }


Answer 4:

System.ComponentModel.DataAnnotations.Schema自4.5只得到了.NET Framework的一部分

如果你使用4.0则实体框架会为你提供。 如果你看一下源代码DatabaseGeneratedOption和其他文件,你会看到他们的代码被包裹在一个条件

#if NET40
...
#endif


Answer 5:

我们最近有这样的问题,在一个旧的项目,我们所做的只是

  • 删除项目的EntityFramework参考
  • 右键单击该项目,做管理的NuGet包,转到更新类别,点击,这是有在列表中第6版的实体框架项目更新


文章来源: Entity Framework 5 on .NET 4.0 - DatabaseGeneratedOption.Identity is undefined