Microsoft.SqlServer.Types несовместим с .NET Standard - PullRequest
0 голосов
/ 30 января 2019

Я пытаюсь преобразовать все наши библиотеки классов C # из .NET Framework в проекты .NET Standard, так как мы начинаем использовать .NET Core, поэтому они должны использоваться как приложениями .NET Core, так и .NET Framework.(последние будут перенесены в Core в ближайшие месяцы.)

У меня проблемы с преобразованием кода уровня доступа к данным, поскольку мы широко используем Microsoft.SqlServer.Types и официальный пакет Nuget . не поддерживает .NET Standard.Я попробовал неофициальный пакет nuget от dotmorten , но в нем не хватает функциональности.Ниже приведен список всего недостающего, что нам понадобится (собраны вместе, чтобы получить сборку кода ...)

public static class SqlMockExtensions
    {
        public static SqlBytes STAsBinary(this SqlGeography geography) => throw new NotImplementedException();

        public static SqlGeography MakeValid(this SqlGeography geography) => throw new NotImplementedException();

        public static int STDimension(this SqlGeography geography) => throw new NotImplementedException();

        public static bool STIsValid(this SqlGeography geography) => throw new NotImplementedException();

        public static Nullable<double> EnvelopeAngle(this SqlGeography geography) => throw new NotImplementedException();

        public static SqlGeography ReorientObject(this SqlGeography geography) => throw new NotImplementedException();

        public static SqlGeography BufferWithTolerance(this SqlGeography geography, double arg1, int arg2, bool arg3) => throw new NotImplementedException();

        public static SqlGeography Reduce(this SqlGeography geography, double tolerance) => throw new NotImplementedException();

        public static SqlGeography EnvelopeCenter(this SqlGeography geography) => throw new NotImplementedException();

        public static double STDistance(this SqlGeography geography, SqlGeography point2) => throw new NotImplementedException();

        public static SqlBytes STAsBinary(this SqlGeometry geometry) => throw new NotImplementedException();
    }

Когда я ищу SO для других, пытающихся интегрировать Microsoft.SqlServer.Вводя в свои проекты .NET Core и Standard, я вижу упоминание о включении официального пакета nuget, а затем что-то вроде этого:

SqlServerTypes.Utilities.LoadNativeAssemblies(AppDomain.CurrentDomain.BaseDirectory);

Однако при попытке добавить не-.NET ошибки возникают.Стандартный совместимый пакет nuget в проекте .NET Standard, поэтому я не совсем понимаю, как это решение.

Кажется, это очень распространенная проблема, должно быть много разработчиков, которыеиспользовать Microsoft.SqlServer.Types для SqlGeography, SqlGeometry и т. д. и переносить их на .NET Standard.Так как же вы все это делаете?

...