使用:
- Entity Framework 5
- MySQL 连接器网络 6.8.4
- MySQL 5.6.21
- Visual Studio 2013
- MySQL 工作台 6.2
使用工作台在 MySQL 中创建了下表
在 Visual Studio 2013 中打开我的应用程序,导航到我的数据访问层项目,打开 .edmx,右键单击 Canvas 并选择 “从数据库更新模型......”。 我继续添加新表,单击“完成”,结果如下:
正如您所看到的,所有空间数据类型都被忽略了。
数据访问项目包括(除其他外)以下引用文献:
- 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/