我正在尝试将一个webform从ASP.NET MVC迁移到ASP.NET Core MVC.目前我正试图找到一种替代方法:
using System.Data.Entity.Spatial;
Run Code Online (Sandbox Code Playgroud)
因为它目前在.NET Core中不可用,或者我可能无法找到它.
有没有办法包括这个包?也许通过NuGet包?
PS.我简要阅读了Microsoft指南,但找不到与之相关的任何内容.对于可能处于类似情况的任何人,指南在此处:https: //docs.asp.net/en/latest/migration/mvc.html
(对不起,如果我写不出一个好问题,我想在这里习惯这个系统)
Hat*_*ef. 17
编辑
此功能是EF Core 2.2中的新功能
空间数据现已添加到EF Core 2.2(参见文档)
在EF Core 2.2版本之前使用它:
现在您可以使用Microsoft.Spatialfor geography和geometry空间操作.
ofc,EntityframeworkCore不支持空间,所以你不能在codefirst中创建一个具有地理数据类型的字段,我建议你用纯SQL做点赞,直到EntityframeworkCore2017年第二季度支持空间(见这个).如果你不知道我会怎么告诉你.
首先,您需要添加一个具有地理数据类型的字段,因此您需要在其中一个迁移类中运行此命令:
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.Sql("ALTER TABLE [dbo].[Cities] ADD [Location] geography");
}
Run Code Online (Sandbox Code Playgroud)如果您正在使用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);
}
Run Code Online (Sandbox Code Playgroud)现在,如果你想找到附近的城市,你可以使用这个推荐:
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);
Run Code Online (Sandbox Code Playgroud)//最近城市的结果:
1.Tehran
2.Ankara
3.Paris
4.Washington DC
记得!您应该选择除具有地理数据类型的字段之外的所有记录!
| 归档时间: |
|
| 查看次数: |
12513 次 |
| 最近记录: |