asp.net-core – ASP.NET Core中的System.Data.Entity.Spatial替
我正在尝试将一个webform从ASP.NET MVC迁移到ASP.NET Core MVC.目前我正试图找到一种替代方法:
using System.Data.Entity.Spatial; 因为它目前在.NET Core中不可用,或者我可能无法找到它. 有没有办法包括这个包?也许通过NuGet包? PS.我简要阅读了Microsoft指南,但找不到与之相关的任何内容.对于可能处于类似情况的任何人,指南在这里: (对不起,如果我写不出一个好问题,我想在这里习惯这个系统) 解决方法
现在,您可以将Microsoft.Spatial用于地理和几何空间操作.
ofc,EntityframeworkCore不支持空间,所以你不能在codefirst中创建一个具有地理数据类型的字段,我建议你使用纯SQL表示这一点,直到EntityframeworkCore在2017年第二季度(See this)支持空间.如果你不知道我会怎么告诉你. >首先,您需要添加一个具有地理数据类型的字段, protected override void Up(MigrationBuilder migrationBuilder) { migrationBuilder.Sql("ALTER TABLE [dbo].[Cities] ADD [Location] geography"); } >如果您正在使用UnitOfWork,则可以在插入如下记录后更新“位置”字段: try { City city = new City { Title = creator.Title }; _cities.Add(city); _uow.ExecuteSqlCommand("UPDATE Cities SET Location = geography::STPointFromText('POINT(' + CAST({0} AS VARCHAR(20)) + ' ' + CAST({1} AS VARCHAR(20)) + ')',4326) WHERE(ID = {2})",city.Longitude,city.Latitude,city.ID); return RedirectToAction("Index"); } catch { return View(creator); } >现在如果你想找到附近的城市,你可以使用这个推荐: var cities = _uow.Set<City>() .FromSql(@"DECLARE @g geography = geography::STPointFromText('POINT(' + CAST({0} AS VARCHAR(20)) + ' ' + CAST({1} AS VARCHAR(20)) + ')',4326); Select ID,Address,CreationDate,CreationDateInPersian,CreationDateStandard,CreatorRealName,CreatorUserID,ExLanguageID,IsActive,IsDeleted,Latitude,Longitude,ModifierRealName,ModifierUserID,ModifyDate,ModifyDateInPersian,ModifyDateStandard,PhoneNumbers,Summary,TimeStamp,Title,Image from Cities ORDER BY Location.STDistance(@g) DESC;",35.738083,51.591263) .Select(x => new AllRecordsViewModel { ID = x.ID,Title = x.Title }) .ToList(); return View(cities);
记得!你应该选择除具有地理数据类型的字段以外的所有记录! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- 如果关键服务不可用,如何使ASP.NET站点脱机
- asp.net – IIS URL重写:强制规范主机名和HTTP到HTTPS重定
- mvc项目架构分享系列之架构搭建初步 架构搭建初
- asp.net-mvc-3 – 名称’ViewBag’在当前上下文中不存在
- asp.net-mvc – 动态生成sitemap.xml
- asp.net-web-api – 设置默认的WebAPI格式化程序
- asp.net-mvc – 重载asp.net MVC Web API应用程序和异步消息
- asp.net-mvc – 设置登台和生产环境,最大限度地减少简单托管
- 如何将作为ASP.NET图像控件提供的图像居中?
- .net-4.0 – 从自定义IHttpHandler调用MvcHttpHandler.Exec
- asp.net – 51degrees.mobi的替代方案?
- 如何使用Razor在ASP.NET网页中的attribut中写入a
- mvc6与signalr的任何样品?
- asp.net – 如何从windows azure云服务中的excel
- asp.net-mvc – DotNetOpenAuth简单演示,MVC和Ra
- asp.net – 对于未更改的静态内容,Amazon CloudF
- asp.net – ASP .NET MVC中的TinyMCE Spellcheck
- asp.net-mvc – ASP.NET MVC HTML帮助程序可以渲
- asp.net – 缓存通过VirtualPathProvider返回的静
- asp.net-web-api – Asp.net web api中的DbGeome