C# DbGeometry.IsEmpty在升级EF 5之后激发NotImplementedException->;6.

C# DbGeometry.IsEmpty在升级EF 5之后激发NotImplementedException->;6.,c#,.net,wcf,entity-framework-5,entity-framework-6,C#,.net,Wcf,Entity Framework 5,Entity Framework 6,我在应用程序中使用EF空间数据类型DbGeometry和DbGeography。现在我尝试从EF5升级到EF6。项目会编译(在我将所有System.Data.Entity引用交换到EF6的新引用之后),但在运行时,当我尝试访问DbGeometry.IsEmpty时,我会得到NotImplementedException。从我发现的重构程序集中,IsEmpty调用私有字段spatialProvider,它有两个实现——DefaultProvider和SqlServerProvider。默认情况下抛

我在应用程序中使用EF空间数据类型DbGeometry和DbGeography。现在我尝试从EF5升级到EF6。项目会编译(在我将所有System.Data.Entity引用交换到EF6的新引用之后),但在运行时,当我尝试访问DbGeometry.IsEmpty时,我会得到NotImplementedException。从我发现的重构程序集中,IsEmpty调用私有字段spatialProvider,它有两个实现——DefaultProvider和SqlServerProvider。默认情况下抛出异常。那么,我如何指示EF使用SqlServer呢

我的体系结构有两个词:服务器通过EF与DB通信。在服务器上,它似乎也工作得很好,这是我有EDMX和创建所有EF东西的地方。然后通过WCF向客户机发送DTO,此DTO具有DbGeometry属性。而在客户端(WPF)上,我在此DTO属性上调用IsEmpty,并且。。。例外是否有一些配置或其他东西,因为在客户端我没有任何EF模式等,只是对EntityFaramework 6空间类型DLL的引用


PS:我也会在客户机上加载非托管SQLTypes程序集。

好的,一旦您描述了它,您最终会得到答案。如果smb遇到同样的问题:对于像IsEmpty这样的方法,它们无法正常工作(即使用SqlServer实现,而不是默认的实现),应该将EntityFramefork NuGet包添加到项目中。它不仅添加了对EntityFramework.dll的引用,还添加了对EntityFramework.SqlServer.dll的引用

当我在升级过程中更改名称空间时,我只在ReSharper中单击了添加引用,它只会自动添加对EntityFramework.dll的引用