Пространственные данные EF Core не работают после обновления SQL Server - PullRequest
0 голосов
/ 19 марта 2019

Предыдущая база данных была SQL Server 2008 на Windows Web Server 2008. Текущий - это SQL Server 2017 на Windows Server 2012. Связана ли эта проблема с ОС?

Я использовал EF Core с NetTopologySuite поверх SQL Server 2008, и он работал нормально.

Я переместил базу данных в экземпляр SQL Server 2017, но при запросе я получаю эту ошибку:

Ошибка .NET Framework при выполнении пользовательской подпрограммы или совокупной «географии»: System.FormatException: один из идентифицированных элементов был в недопустимом формате.

Код такой же, без изменений. Однако я чувствую, что чего-то не хватает в SQL Server 2017 или где-то между ними.

private async Task<List<PotentialProjectViewModel>> GetPotentialLocations(Project p)
    {
        return await _db.PotentialProjects
            .Where(x => x.Location != null)
            .Where(x => x.Location.Distance(p.Locatie) < 950)
            .Select(x => new PotentialProjectViewModel
            {
                LocatieLatitudine = x.AddressLatitude,
                LocatieLongitudine = x.AddressLongitude,
                NumeProiect = x.ProjectName
            })
            .ToListAsync();
    }

Контекст базы данных настроен следующим образом:

protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
    {
        if (!optionsBuilder.IsConfigured)
        {
            optionsBuilder
                .UseSqlServer(ConnectionString,
                    sqlOptions => sqlOptions.UseNetTopologySuite());
        }
    }

Я установил пакет nuget NetTopologySuite, а также Microsoft.EntityFrameworkCore.SqlServer.NetTopologySuite.

...