从EF 5切换到EF 6 Alpha 3 - 现在DbGeography不起作用

时间:2013-05-19 19:43:30

标签: entity-framework spatial

我的域名

public DbGeography Location { get; set; }

这在我的映射中

 this.Property(t => t.Location);

现在在我的映射文件中,我在上面的行中出现错误

Error   1   The type 'System.Data.Spatial.DbGeography' must be a non-nullable value type in order to use it as parameter 'T' in the generic type or method 'System.Data.Entity.ModelConfiguration.Configuration.StructuralTypeConfiguration<TStructuralType>.Property<T>(System.Linq.Expressions.Expression<System.Func<TStructuralType,T>>)'

在EF 5中从未出现过此错误。

1 个答案:

答案 0 :(得分:3)

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

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

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

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

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

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

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