Entity framework 类型';System.Data.Spatial.DbGeography';必须是不可为空的值类型才能将其用作参数';T';

Entity framework 类型';System.Data.Spatial.DbGeography';必须是不可为空的值类型才能将其用作参数';T';,entity-framework,entity-framework-6,Entity Framework,Entity Framework 6,我正在使用EF 6,我的一个模型出现了一个非常奇怪的错误: 字段配置为: Property(x => x.IncidentLocationGps).HasColumnName("IncidentLocationGPS").IsOptional(); 错误是: 类型“System.Data.Spatial.DbGeography”必须是不可为空的 值类型,以便将其用作泛型类型中的参数“T”,或 方法 System.Data.Entity.ModelConfiguration.Configu

我正在使用EF 6,我的一个模型出现了一个非常奇怪的错误:

字段配置为:

Property(x => x.IncidentLocationGps).HasColumnName("IncidentLocationGPS").IsOptional();
错误是:

类型“System.Data.Spatial.DbGeography”必须是不可为空的 值类型,以便将其用作泛型类型中的参数“T”,或 方法
System.Data.Entity.ModelConfiguration.Configuration.structureTypeConfiguration.Property(System.Linq.Expressions.Expression


提前感谢您的帮助

这是我在深入阅读EF6文档后最终找到的解决方案

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

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

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

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

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


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

如果您想要基于POCO的持久性不可知代码,那么这不是一个解决方案