Entity framework 6 and spatial data

☆樱花仙子☆ 提交于 2019-12-22 04:45:27

问题


I have database with spatial data types. I use database first model and entity framework 6.0.2 and .NET 4.5. When I am trying to use the generated classes I get following error:

Schema specified is not valid. Errors: The relationship 'Name_FK1' was not loaded because the type 'Model.TypeB' is not available. The following information may be useful in resolving the previous error: The property 'Position' on the type 'Data.TypeB' has a property type of 'System.Data.Spatial.DbGeography' which cannot be mapped to a primitive type.

The same error is listed for all tables where I use spatial type. The ‘Name_FK1’ is foreign key relation.

What am I doing wrong?

Thank you for your help.


回答1:


I fixed it! Very proud of myself :)

Hope this helps somebody else. So, from the link above (http://msdn.microsoft.com/en-US/data/dn469466) there is this line:

Spatial classes (e.g. DbGeography, DbGeometry) have moved from System.Data.Spatial => System.Data.Entity.Spatial

Before I was getting this error:

The relationship 'IntakeModel.FK_Assignee_HomeLocation' was not loaded because the type 'IntakeModel.Location' is not available. The following information may be useful in resolving the previous error: The property 'Geo' on the type 'ConsoleApplication3.Location' has a property type of 'System.Data.Spatial.DbGeography' which cannot be mapped to a primitive type.

I just had to change this in my Location.cs file:

public System.Data.Spatial.DbGeography Geo { get; set; }

To this:

public System.Data.Entity.Spatial.DbGeography Geo { get; set; }

Problem solved. Thanks for posting that link @Ricky Jones.




回答2:


I followed the instructions on the following link, which caused other problems I needed to solve, but it did fix my spatial issue.

http://msdn.microsoft.com/en-US/data/dn469466




回答3:


This problem was caused because you created a EF 5.x DbContext Generator for a EF 6.0 edmx to solve this problem you just need to delete the old DbContext Generator and create a new one with EF 6.0 DbContext Generator.

This worked fine for me.



来源:https://stackoverflow.com/questions/20729185/entity-framework-6-and-spatial-data

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!