2013-06-19 82 views
3

我正在使用EF 6,並且出現了一個非常奇怪的錯誤我的模型:類型'System.Data.Spatial.DbGeography'必須是非空值類型才能用作參數'T'

字段配置爲:

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

和錯誤是:

類型 'System.Data.Spatial.DbGeography' 必須是一個非空的 值類型以便在通用類型o中將其用作參數'T' [R 方法 System.Data.Entity.ModelConfiguration.Configuration.StructuralTypeConfiguration<TStructuralType>.Property<T>(System.Linq.Expressions.Expression<System.Func<TStructuralType,T>>

在此先感謝您的幫助

回答

4

這是我最後發現挖一點進一步EF6文件後的溶液。

刪除程序集引用System.Data.Entity.dll

安裝EF6 NuGet包增加了以下運行時組件到您的項目:

最近構建EF6 NuGet包的刪除參考系統.Data.Entity.dll來自該項目。

EF6不使用System.Data.Entity.dll中的任何代碼,並在項目中引用它可能會導致構建衝突。

這些衝突可以解決,但一般情況下,你不應該在同一個應用程序中使用EF6和System.Data.Entity.dll。

希望這可以幫助任何面臨同樣問題的人。

+2

如果您想要基於POCO的持久性不可知代碼,那麼這不是一個解決方案 –

相關問題