EFリポジトリでこのエラーメッセージ(「移行構成タイプが見つかりませんでした」)を検索すると、次のリソースがEntityFramework / Properties/Resources.csファイルにあります。
/// <summary>
/// A string like "No migrations configuration type was found in the assembly '{0}'. (In Visual Studio you can use the Enable-Migrations command from Package Manager Console to add a migrations configuration)."
/// </summary>
internal static string AssemblyMigrator_NoConfiguration(object p0)
{
return EntityRes.GetString(EntityRes.AssemblyMigrator_NoConfiguration, p0);
}
次のステップはAssemblyMigrator_NoConfiguration
使用法の検索であり、EntityFramework / Migrations / Design/ToolingFacade.csにあるオカレンスが1つだけ見つかります。
private DbMigrationsConfiguration FindConfiguration()
{
var configurationType = FindType<DbMigrationsConfiguration>(
ConfigurationTypeName,
types => types
.Where(
t => t.GetConstructor(Type.EmptyTypes) != null
&& !t.IsAbstract
&& !t.IsGenericType)
.ToList(),
Error.AssemblyMigrator_NoConfiguration,
(assembly, types) => Error.AssemblyMigrator_MultipleConfigurations(assembly),
Error.AssemblyMigrator_NoConfigurationWithName,
Error.AssemblyMigrator_MultipleConfigurationsWithName);
return configurationType.CreateInstance<DbMigrationsConfiguration>(
Strings.CreateInstance_BadMigrationsConfigurationType,
s => new MigrationsException(s));
}
これで、エラーを追跡して修正する方が簡単になると思います。
ソースコードでテストしましたが、メッセージは無関係でした。relの原因はapp.configのターゲットフレームワークタグであることがわかりました。
正解の同様の質問は次
のとおりです。 「Enable-Migrations」は、.NET4.5およびEF5にアップグレードした後に失敗します
興味深いことに、それぞれContextクラス名とConfiguratinクラス名を正確に指すEnable-MirationsとAdd-Migrationを実行すると、正常に機能します。しかし、言及された解決策は正しい解決策であり、また簡単です:-)