MySQL Connector/Net EF 数据库优先空间数据类型
MySQL Connector/Net EF Database First Spatial Datatypes
使用:
- Entity Framework 5
- MySQL 连接器网络 6.8.4
- MySQL 5.6.21
- Visual Studio 2013
- MySQL Workbench 6.2
使用 workbench 在 MySQL 中创建了以下 table
在 Visual Studio 2013 年打开我的应用程序,导航到我的数据访问层项目,打开 .edmx,右键单击 canvas 并选择
"Update model from database..."。
我继续添加新的 table,点击完成,这是吐出的内容:
如您所见,所有空间数据类型都被忽略了。
数据访问项目包括(除其他外)以下参考资料:
- EntityFramework
- MySql.Data
- MySql.Data.Entity.EF5
- MySql.Web
- System.Data.Entity
我意识到在 EF 中它们将属于 DbGeometry 类型,但我觉得更新过程应该能够自行解决这个问题。虽然我可以手动添加映射,但我宁愿不这样做,因为下次有人运行 "Update model from database..."
时它们会被吹走
有什么见解或建议吗?谢谢!
编辑:
用 Entity Framework 6 测试并继续有问题
尝试 "Update Model from Database" 后查看错误列表警告,我现在看到:
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 属性,但每次更新模型时这些属性都会消失。
使用:
- Entity Framework 5
- MySQL 连接器网络 6.8.4
- MySQL 5.6.21
- Visual Studio 2013
- MySQL Workbench 6.2
使用 workbench 在 MySQL 中创建了以下 table
在 Visual Studio 2013 年打开我的应用程序,导航到我的数据访问层项目,打开 .edmx,右键单击 canvas 并选择 "Update model from database..."。 我继续添加新的 table,点击完成,这是吐出的内容:
如您所见,所有空间数据类型都被忽略了。
数据访问项目包括(除其他外)以下参考资料:
- EntityFramework
- MySql.Data
- MySql.Data.Entity.EF5
- MySql.Web
- System.Data.Entity
我意识到在 EF 中它们将属于 DbGeometry 类型,但我觉得更新过程应该能够自行解决这个问题。虽然我可以手动添加映射,但我宁愿不这样做,因为下次有人运行 "Update model from database..."
时它们会被吹走有什么见解或建议吗?谢谢!
编辑: 用 Entity Framework 6 测试并继续有问题
尝试 "Update Model from Database" 后查看错误列表警告,我现在看到:
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 属性,但每次更新模型时这些属性都会消失。