我需要在 .NET 4 上使用 EF5,并且在使用 4.0 版本的库中不存在的 HasDatabaseGenerationOption.Identity 映射我的类时遇到了参考问题。
以下是失败的:
this.Property(t => t.DeploymentLogId)
.HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);
有谁知道解决方法?
我需要在 .NET 4 上使用 EF5,并且在使用 4.0 版本的库中不存在的 HasDatabaseGenerationOption.Identity 映射我的类时遇到了参考问题。
以下是失败的:
this.Property(t => t.DeploymentLogId)
.HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);
有谁知道解决方法?
使用 NuGet 将 EntityFramework 添加到面向 .NET 4.5 的项目中,将添加 EntityFramework 5.0。
如果您稍后将项目更改为面向 .NET 4.0,仍会引用 EntityFramework 5.0。
要修复它,请使用 NuGet 卸载 EntityFramework 并将其添加回来,也在 NuGet 中。这将添加 EntityFramework 4.4,这是 .NET 4.0 的最后支持版本。
如果它仍然无法正常工作,则可能会引用App.config
. 这些可以删除。
命名空间在 EF 5.0 中发生了变化。尝试添加这个:
using System.ComponentModel.DataAnnotations.Schema;
您是否尝试过使用数据注释?
public class DeploymentLog
{
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int DeploymentLogId { get; set; }
System.ComponentModel.DataAnnotations.Schema
自 4.5 以来仅是 .NET Framework 的一部分
如果您使用的是 4.0,那么 Entity Framework 将为您提供它。如果您查看DatabaseGeneratedOption和其他文件的源代码,您会看到它们的代码被包装在一个条件
#if NET40
...
#endif
我们最近在一个旧项目上遇到了这个问题,我们所做的只是