3

我正在使用 EF 6,但在我的一个模型上遇到了一个非常奇怪的错误:

字段配置为:

Property(x => x.IncidentLocationGps).HasColumnName("IncidentLocationGPS").IsOptional();

错误是:

类型“System.Data.Spatial.DbGeography”必须是不可为空的值类型,才能在泛型类型或方法中用作参数“T” System.Data.Entity.ModelConfiguration.Configuration.StructuralTypeConfiguration<TStructuralType>.Property<T>(System.Linq.Expressions.Expression<System.Func<TStructuralType,T>>

在此先感谢您的帮助

4

1 回答 1

4

这是我在深入研究 EF6 文档后最终找到的解决方案。

删除对 System.Data.Entity.dll 的程序集引用

安装 EF6 NuGet 包会将以下运行时程序集添加到您的项目中:

EF6 NuGet 包的最新版本从项目中删除了对 System.Data.Entity.dll 的引用。

EF6 不使用 System.Data.Entity.dll 中的任何代码,并且在您的项目中引用它可能会导致生成冲突。

这些冲突可以解决,但通常您不应在同一应用程序中使用 EF6 和 System.Data.Entity.dll。

希望这可以帮助面临同样问题的其他人。

于 2013-06-22T09:32:22.067 回答