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

时间:2013-06-19 22:27:15

标签: entity-framework entity-framework-6

我正在使用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>>

提前感谢您的帮助

1 个答案:

答案 0 :(得分:4)

这是我在进一步深入了解EF6文档后最终找到的解决方案。

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

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

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

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

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

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