1

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

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

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

我的项目针对 .NET 4.5 框架并使用 Entity Framework 5.0。一个警告是我正在使用 MySql。我已经安装了 MySql .NET 连接器 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 Membership Provider 部分,因为其中包含版本号,但除此之外,我真的没有在其他任何地方看到它。引用中的dll(mysql.data和mysql.data.entity)已经被替换了,但是mysql.web还是6.6.5,因为我安装6.7.4的时候没有得到另一个版本的dll

4

1 回答 1

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 类型特定于实体框架并存在于这些程序集中。它们也适用于通用的非数据库空间数据操作,但随后您将被迫依赖 System.Data.Entity。

于 2013-12-26T19:17:34.203 回答