2013-08-21 22 views
1

我试图建立我的项目能够使用的空间扩展,但我发现了以下错误,当我尝试创建的.edmx:.NET框架4.5不承认geometery数据类型

警告6005:数据类型“几何”目前不支持目标.NET Framework版本

那么它只是创建EDMX并从模型中不包括几何类型的列。一切都在编译,我只是不能使用几何的东西,因为它不在那里!

我的项目的目标是.NET 4.5框架,并使用实体框架5.0。一个警告是我使用MySql。我已经安装了MySql .NET Connector 6.7.4以及Visual Studio等的所有更新,根据我所阅读的所有内容,应完成设置以允许我执行我正在尝试执行的操作。有谁知道我可能会错过或做错了什么?我感觉好像我一直在撞墙撞墙!我已经开始质疑我是否知道如何使用Visual Studio。只是为了再次检查 - 如果项目属性页面的“目标框架”下拉菜单设置为“.NET Framework 4.5”,这意味着我使用4.5正确?!如果Entity Framework参考的属性部分显示“5.0”,那么它是5.0?即使运行时版本显示“4.0.30319”?我安装5.0,所以我不知道为什么运行时会有所不同...

我将不胜感激任何指导!我在这里疯了。我甚至尝试手动添加属性,但它不会让我添加一个新的映射,并且构建会失败!

在此先感谢!

其他信息:我不知道这件事是否重要,但我并没有最初创建这些版本的项目。原来的MySql连接器是6.6.5。这可能会有所作为吗?像是有什么地方需要更新的版本,我没有改变?我更改了我的web.config成员资格提供程序部分,因为它有版本号,但除此之外,我真的没有在其他地方看到它。 dll(mysql.data和mysql.data.entity)在参考文献中已被替换,但mysql.web仍然是6.6.5,因为当我安装6.7.4时,我没有得到另一个版本的dll文件。6.7.4

+0

要回答你的问题的一小部分,'运行时版本'是dll所针对的.NET版本。 [4.0.30319.17929及更高版本](http://en.wikipedia.org/wiki/List_of_.NET_Framework_versions)是.NET 4.5(它也会为.NET 4.0报告“4.0.30319”)。任何使用3.5报告“v2.0.50727”构建的东西 –

回答

0

几何不是CLR类型,而是SQL Server数据库类型。 DbGeography和DbGeometry是.NET 4.5中可用的类型,但您需要在代码中引用System.Data.Spatial。

正如Rick Strahl的博客(http://weblog.west-wind.com/posts/2012/Jun/21/Basic-Spatial-Data-with-SQL-Server-and-Entity-Framework-50), 中提到的,没有本机CLR空间类型。 DbGeography和DbGeometry类型特定于实体框架,并位于这些程序集上。他们也可以用于通用目的,非数据库空间数据操作,但是这样你就不得不依赖于System.Data.Entity。