.NET framework 4.5无法识别几何数据类型

时间:2013-08-21 20:33:14

标签: .net entity-framework spatial

我正在尝试设置我的项目以便能够使用空间扩展,但是当我尝试创建.edmx时出现以下错误:

  

警告6005:目标.NET Framework版本

目前不支持数据类型“几何”

然后它只是创建edmx并从模型中排除几何类型的列。一切都在编译,我只是不能使用几何东西,因为它不在那里!

我的项目面向.NET 4.5框架,并且正在使用Entity Framework 5.0。一个警告是我正在使用MySql。我已经安装了MySql .NET Connector 6.7.4以及Visual Studio等的所有更新,根据我读过的所有内容,应该完成设置以允许我做我正在尝试做的事情。有谁知道我可能会遗漏或做错什么?我觉得我已经连续几天撞到了墙上!我已经开始质疑我是否知道如何使用Visual Studio。只是要仔细检查 - 如果项目属性页面的“目标框架”下拉列表设置为“.NET Framework 4.5”,这意味着我正在使用4.5吗?!如果实体框架参考的属性部分显示“5.0”,它的5.0是对的吗?即使运行时版本说“4.0.30319”?我安装了5.0,所以我不确定为什么运行时会有所不同......

我非常感谢任何指导!我在这里疯了。我甚至尝试手动添加属性,但它不会让我添加新的映射,构建会失败!!

提前致谢!

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

1 个答案:

答案 0 :(得分:0)

Geometry不是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类型特定于Entity Framework并且存在于这些程序集中。它们也可以用于通用的非数据库空间数据操作,但是你不得不依赖System.Data.Entity。