c# - MySQL Connector/Net EF 数据库第一个空间数据类型

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

使用:

  • Entity Framework 5
  • MySQL 连接器网络 6.8.4
  • MySQL 5.6.21
  • Visual Studio 2013
  • MySQL 工作台 6.2

使用工作台在 MySQL 中创建了下表 MySQL table, five columns of types int as pk, linestring, polygon, double, geometry

在 Visual Studio 2013 中打开我的应用程序,导航到我的数据访问层项目,打开 .edmx,右键单击 Canvas 并选择 “从数据库更新模型......”。 我继续添加新表,单击“完成”,结果如下:

Route Geometry db model table with not the correct properties Redundant picture of auto-generated model class

正如您所看到的,所有空间数据类型都被忽略了。

数据访问项目包括(除其他外)以下引用文献:

  • Entity Framework
  • MySql.Data
  • MySql.Data.Entity.EF5
  • MySql.Web
  • 系统.Data.Entity

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

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

编辑: 使用 Entity Framework 6 进行测试,仍然存在问题

最佳答案

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

Error 6005: The data type 'geometry' is currently not supported for the target Entity Framework version; the column 'test_geometry' in the table 'def.spatialdb.routegeometry' was excluded.

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

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

关于c# - MySQL Connector/Net EF 数据库第一个空间数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29613112/

相关文章:

c# - DataGridComboBoxColumn 不同行的不同 ItemsSource

C# 400 错误请求和长字符 api 有多重要

php - SQL-更改现有行

mysql - 如何从 Go struct 生成 MySQL 表

c# - Entity Framework - 如何使用自定义 DbContext 实现存储库?

c# - 如何在 Entity Framework 6 中延迟加载关系?

c# - ASP NET MVC RAZOR 上传多个图像文件列表

c# - 为什么在我的 C# 泛型方法中得到 "error: ... must be a reference type"?

php - 将每一行用作包含的获取变量?

c# - EF 7 : INSERT statement conflicted with the FOREIGN KEY SAME TABLE