Effort.EF6的Spatial DbGeography Provider异常[找不到可用的空间提供者。]


我正在使用EF6开发一个应用程序,我决定将System.Data.Entity.Spatial.DbGeography用于我的位置,如下所示

public class Place
{
  public int Id { get; set; }
  public string Name { get; set; }
  public DbGeography Location { get; set; }
} 

当我运行我的测试时,我收到以下错误

public class Place
{
  public int Id { get; set; }
  public string Name { get; set; }
  public DbGeography Location { get; set; }
} 

PS:我正在使用Effort进行测试。

任何建议都会有所帮助,谢谢。


2015年4月3日编辑:

错误是Effort。它不支持空间属性[DbGeography]我正在寻找一种解决方法,当我解决问题时,我会发布。

更多信息: https//effort.codeplex.com/discussions/471666

一般承认的答案

鉴于Effort不支持像DbGeography这样的特殊属性,tamasflamich 在这里说:

没有现有支持(甚至没有测试版),我不打算很快就开始使用此功能。抱歉。

我也试过使用Highway.Data,但它也不支持。

它现在不存在,也不会支持AdvancedQuery,AdvancedCommand或AdvancedScalar。

我走过我的代码并注意到我只需要一个盒子里面的位置,然后我决定停止使用DbGeography并按我自己的方式进行,如下所示:

public class Place
{
  public int Id { get; set; }
  public string Name { get; set; }
  public double Lat { get; set; }
  public double Lng { get; set; }
}

代替:

public class Place
{
  public int Id { get; set; }
  public string Name { get; set; }
  public double Lat { get; set; }
  public double Lng { get; set; }
}

现在我有这个:

public class Place
{
  public int Id { get; set; }
  public string Name { get; set; }
  public double Lat { get; set; }
  public double Lng { get; set; }
}

这解决了我的问题,但是Effort和HighwayFramework支持空间会很棒。





许可下: CC-BY-SA
不隶属于 Stack Overflow
这个KB合法吗? 是的,了解原因