Нам нужна опция, чтобы установить 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());
}
}
Как вы можете видеть, мы попробовали две разные вещи: 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);
}
}
никогда не вызывается, поэтому кажется, что мы здесь зашли в тупик. Кто-нибудь имел ту же проблему и нашел решение?