Tag: spatial

DbGeography替代C#POCO

我正在编写一个应用程序,我需要查询某个位置半径内的记录。 我开始在我的PCO上只有一对纬度/长的属性,但意识到SQL中的空间搜索是针对列类型的地理位置完成的,这种搜索在POCO中转换为DbGeography(在另一个SOpost中引用,也使用EF Powertools Reverse工程师POCO)。 所以,我看到的问题是我尽可能保持我的POCOS干净,尽可能地将所有引用/依赖性遗漏给entity framework和持久性存储。 我在模型/域组件中有我的POCOS,它永远不应该引用EF。 只有我的Repository类和DataStore for DbContext子类和Fluent Configuration项目才知道EF。 我还使用流畅的配置远离DataAnnotation属性。 一旦你放入DbGeography你就需要’使用System.Data.Entity.Spatial’和’EF’来打破持久性不可知的方法,至少对于“普通”的旧C#对象 。 有了这么多的数据库平台,并且尽可能地使这个系统成为未来的certificate,在我想切换到另一个持久性存储的事件中重写数据存储代码的最小努力,保持我的域代码尽可能干净是非常重要的。 我发现基于EF流畅的基于代码的配置被引入并且允许我们不必使用DataAnnotations属性因此保持System.Data.Entity不在混合中,但是在空间上他们打破了模式。 有谁知道如何处理我正在尝试做的事情? – 斯科特评论后更新:所以还有一个小问题。 我有对System.Data.Entity的引用,我在我的模型上有这个: public System.Data.Spatial.DbGeography GeoLocation {get; 组; } 我在配置类中有这个: this.Property(t => t.GeoLocation).HasColumnName(“GeoLocation”)。HasColumnType(“geography”); this.Property得到下划线,我得到这个编译错误: 严重性代码描述项目文件行抑制状态错误CS0453类型’DbGeography’必须是非可空值类型才能在generics类型中将其用作参数’T’或方法’StructuralTypeConfiguration.Property(Expression>)’FoodRadar.DataStore C:\ Developer \ SrcSt \ FoodRadar \ FoodRadar.DataStore \ Configuration \ VendorConfiguration.cs 66 Active 我尝试了另一个使用t4模板的反向poco生成器,它使用System.Data.Entity.Spatial.DbGeography生成,但仍需要引用EntityFramework。 我该如何指定映射?

小巧玲珑的空间地理类型

我正在编写一些空间示例,并决定给Dapper一个机会,虽然EF有空间支持,我很想再次控制我的SQL(感谢Sam和Marc)。 但是,我需要能够拥有支持DbGeography类的POCO。 例如 : public class BuriedTreasure { public int PirateId { get; set; } public DbGeography MarksTheSpot { get; set; } } 我的谷歌foo一直让我失望,我能找到的最接近的匹配是这个问题,虽然它只是为了增加空间支持作为参数(所以它在那里是50%)。 现在,据我所知,我仅限于以下选项,对我来说这两种选择都不是一个可行的解决方案。 自定义dapper代码以了解SQL Server特定类型 在我的POCO中指定LONG,LAT和ELEVATION小数,并在我的存储过程中创建SPATIAL类型,并有另一个过程来检索值(或使用持久计算列,但几乎相同) 备择方案?

entity framework6和空间数据

我有空间数据类型的数据库。 我使用数据库第一模型和entity framework6.0.2和.NET 4.5。 当我尝试使用生成的类时,我得到以下错误: 指定的架构无效。 错误:未加载关系“Name_FK1”,因为“Model.TypeB”类型不可用。 以下信息可用于解决先前的错误:“Data.TypeB”类型的属性“Position”具有属性类型“System.Data.Spatial.DbGeography”,该属性类型无法映射到基本类型。 我使用空间类型的所有表都列出了相同的错误。 ‘Name_FK1’是外键关系。 我究竟做错了什么? 谢谢您的帮助。

SQL Server 2008中的空间数据/地理,OR映射器和C#

我正在使用SQL Server 2008中的数据类型“Geography”在C#中开发一个使用和存储地理位置的应用程序。我计划使用entity framework,但很快发现它缺乏对空间数据的支持。 有没有人有经验或知道其他具有空间支持的OR映射器? 该系统将具有很少的写入和许多地理数据读取。 从C#读取/写入空间/地理数据的好/优先方法是什么?

用坐标计算二维形状的最小边界矩形

我有一个解决方案,使用空间数据来表示地图上的一组点。 我需要使用表示簇的范围的坐标来找到可以包含所述点簇的最小边界矩形。 是否存在能够计算此算法的简单算法,或者C#中是否存在任何内置function来实现此目的。 我知道NetTopologySuite,但我不确定如何/如果我可以使用它来实现相同的目标。 我有一个坐标列表,所以我需要将这个字符串列表传递给它并获得MBR。

System.Data.Spatial DbGeography.Distance单位?

使用DbGeography.Distance(otherLocation)测量两个位置之间的距离时,距离的单位是多少? 甚至msdn信息和intellisense都无法指定距离的单位。 有谁知道? [编辑]我正在使用srid 4326.大多数例子似乎都在使用。 从我所能找到的,4326似乎是弧度,这让我完全无能为力。 弧度用于测量角度/度数,那么这实际上意味着什么呢?