entity framework6和空间数据
我有空间数据类型的数据库。 我使用数据库第一模型和entity framework6.0.2和.NET 4.5。 当我尝试使用生成的类时,我得到以下错误:
指定的架构无效。 错误:未加载关系“Name_FK1”,因为“Model.TypeB”类型不可用。 以下信息可用于解决先前的错误:“Data.TypeB”类型的属性“Position”具有属性类型“System.Data.Spatial.DbGeography”,该属性类型无法映射到基本类型。
我使用空间类型的所有表都列出了相同的错误。 ‘Name_FK1’是外键关系。
我究竟做错了什么?
谢谢您的帮助。
我修好了它! 非常自豪:)
希望这有助于其他人。 所以,从上面的链接( http://msdn.microsoft.com/en-US/data/dn469466 )有这一行:
空间类(例如DbGeography,DbGeometry)已从System.Data.Spatial => System.Data.Entity.Spatial移动
在我收到此错误之前:
未加载关系“IntakeModel.FK_Assignee_HomeLocation”,因为“IntakeModel.Location”类型不可用。 以下信息可能有助于解决上一个错误:“ConsoleApplication3.Location”类型的属性“Geo”的属性类型为“System.Data.Spatial.DbGeography”,无法映射到基本类型。
我只需要在Location.cs文件中更改它:
public System.Data.Spatial.DbGeography Geo { get; set; }
对此:
public System.Data.Entity.Spatial.DbGeography Geo { get; set; }
问题解决了。 感谢您发布链接@Ricky Jones。
我按照以下链接上的说明操作,这导致我需要解决的其他问题,但它确实解决了我的空间问题。
导致此问题的原因是您为EF 6.0 edmx创建了EF 5.x DbContext Generator以解决此问题,您只需要删除旧的DbContext Generator并使用EF 6.0 DbContext Generator创建一个新的DbContext Generator。
这对我来说很好。