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);
记得!你应该选择除具有地理数据类型的字段以外的所有记录! (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- IIS ASP.NET vs(NGINX FastCGI Mono或XSP)的性能?
- 认证 – WebApi ActionFilterAttribute,HttpActionContext访
- ASP.Net:动态添加到占位符的用户控件无法检索值
- asp.net – .NET Application_BeginRequest – 如何获取用户
- asp.net – Visual Studio不识别新类
- 实现ASP.NET MVC应用程序的全文搜索的最佳方法是什么?
- asp.net – 如何增加Web服务请求的超时?
- asp.net – 页面查看计数器像StackOverFlow
- 使用Gzip在ASP.NET / IIS7中输出乱码错误页面
- ASP.NET WebSite发布与复制?
- asp.net-mvc – 如何更改MVC Core ValidationSum
- asp.net – 在Web应用程序中排队长时间运行的任务
- asp.net-mvc – ASP.NET MVC Beta授权属性发送给
- ASP.NET将整数绑定到CheckBox的Checked字段
- iis-7 – 经典ASP站点请求在IIS7中随机挂起
- asp.net-mvc – 使用ASP.NET身份重置密码时的令牌
- asp.net-mvc – 如何在ASP.NET MVC Web API中将U
- asp.net中js+jquery添加下拉框值和后台获取示例
- asp.net – 为应用程序池“Classic .NET AppPool
- asp.net – Visual Studio“添加为链接”调试时不
