IManifestTokenResolver для базы данных первой модели?
Нам нужна опция для установки ProviderManifestToken в коде для модели базы данных в первую очередь, чтобы переопределить значение из EDMX, которое по умолчанию равно «2012» для SQL Server 2012 в нашем конкретном случае.
Что мы уже пробовали: как описано вэта почта мы украсили наш контекстный класс атрибутом DbConfigurationType, наш производный класс выглядит точно так же, как в этом посте.
internal sealed class MyDbConfiguration : DbConfiguration
{
public MyDbConfiguration()
{
//this.AddDependencyResolver(new SingletonDependencyResolver<IManifestTokenResolver>(new ManifestTokenService()));
this.SetManifestTokenResolver(new ManifestTokenService());
}
}
Как вы можете видеть, мы попробовали 2 вещи здесь, AddDependencyResolver и SetManifestTokenResolver.
Когда мы запускаем приложение, выполнение программы входит в конструктор MyDbConfiguration - и все, сам преобразователь зависимостей.
internal sealed class ManifestTokenService : IManifestTokenResolver
{
private const string SqlServerManifestToken = @"2005";
private static readonly IManifestTokenResolver DefaultManifestTokenResolver = new DefaultManifestTokenResolver();
/// <inheritdoc />
public string ResolveManifestToken(DbConnection connection)
{
if (connection is SqlConnection)
{
return SqlServerManifestToken;
}
return DefaultManifestTokenResolver.ResolveManifestToken(connection);
}
}
никогда не вызывается, так что, похоже, мы зашли в тупик. У кого-нибудь была такая же проблема и нашел решение?