【问题标题】:MySQL Connector/Net EF Database First Spatial DatatypesMySQL 连接器/Net EF 数据库优先空间数据类型
【发布时间】:2015-06-19 05:21:19
【问题描述】:

使用:

  • 实体框架 5
  • MySQL 连接器网络 6.8.4
  • MySQL 5.6.21
  • Visual Studio 2013
  • MySQL 工作台 6.2

使用工作台在 MySQL 中创建了下表

在 Visual Studio 2013 中打开我的应用程序,导航到我的数据访问层项目,打开 .edmx,右键单击画布并选择 “从数据库更新模型......”。 我继续添加新表,点击完成,这就是吐出来的:

如您所见,所有空间数据类型都被忽略了。

数据访问项目包括(除其他外)以下参考:

  • 实体框架
  • MySql.Data
  • MySql.Data.Entity.EF5
  • MySql.Web
  • System.Data.Entity

我意识到在 EF 中它们将是 DbGeometry 类型,但我觉得更新过程应该能够自己解决这个问题。虽然我可以手动添加映射,但我不希望这样做,因为下次有人运行“从数据库更新模型......”时它们会被吹走

有什么见解或建议吗?谢谢!

编辑: 使用 Entity Framework 6 测试并继续存在问题

【问题讨论】:

  • 您不使用 EF6 的任何原因?
  • 我在使用 EF6 和 ConnectorNet 时遇到了兼容性问题,但我忘记了到底是什么问题。我会看看能否找到旧电子邮件。
  • @Eniola 与 EF6 和 ConnectorNet 的兼容性问题以及创建 .NET MVC 控制器生成的默认脚手架 CRUD 方法...运行它们会导致 SQL 语法错误
  • @Eniola 用 EF6 测试,没有解决问题

标签: c# mysql entity-framework spatial connector-net


【解决方案1】:

在尝试“从数据库更新模型”后查看错误列表警告,我现在看到:

错误 6005:目标实体框架版本当前不支持数据类型“几何”;排除了“def.spatialdb.routegeometry”表中的“test_geometry”列。

这是使用最新的 Entity Framework 6,所以我想仅使用代码优先是不可能的。

可能的解决方案是编辑自动生成的类以添加 DBGeometry 属性,但每次更新模型时这些属性都会被吹走。

【讨论】:

  • 您还有其他解决方案吗?因为,我也面临着与 EF 6 相同的问题。提前致谢。
  • @VishwajeetKulkarni 还没有,我在这里的更新是连接器/网络中的错误的结果。我目前的工作是在 MySQL 中,我将空间数据类型和几何图形的 Well Known Text 都存储在表中。对于大多数空间操作,我使用 MySQL 中的存储过程并通过 EF 调用它们。每当我需要操作几何图形时,我都会检索 Well Known Text 并使用 NetTopologySuite 和 GeoAPI for .Net 实例化几何图形
猜你喜欢
  • 2018-09-05
  • 2011-01-31
  • 1970-01-01
  • 1970-01-01
  • 2020-05-22
  • 2011-04-17
  • 2021-03-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多