Мне говорят использовать Microsoft.SqlServer.Types
для DbGeography
в домашнем проекте, который у меня есть. Проект домашней работы с ASP.NET, и пытается использовать базу данных для поиска в базе данных. (База данных должна быть из файла .bak
, но мне пришлось загрузить файл .bacpac
в Azure, а затем снова подключиться к нему, поскольку файл .bak
постоянно говорит, что он поврежден).
Это блок кода, который мне сказали поместить в файл Global.asax.cs
:
protected void Application_Start()
{
// For Spatial types, i.e. DbGeography
SqlServerTypes.Utilities.LoadNativeAssemblies(Server.MapPath("~/bin"));
// This next line is a fix that came from: https://stackoverflow.com/questions/13174197/microsoft-sqlserver-types-version-10-or-higher-could-not-be-found-on-azure/40166192#40166192
SqlProviderServices.SqlServerTypesAssemblyName = typeof (SqlGeography).Assembly.FullName;
AreaRegistration.RegisterAllAreas();
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
}
Я посмотрел документацию , и проклятая вещь просто говорит:
Microsoft.SqlServer.Types
Позволяет использовать пространственные типы SQL Server на компьютере без установленного SQL Server. Позволяет использовать пространственные типы Entity Framework (DbGeography и DbGeometry).
Что Я думаю, просто означает, что этот пакет позволяет нам использовать выражение c для SQL, но я хотел бы получить более подробное объяснение. Понятия не имею, что DbGeography
и DbGeometry
делают.
Кроме того, я хотел бы знать, применимо ли это к базе данных на базе лазури, а не только к локальной базе данных, созданной из файла .bak.