[解決済み] ASP.NET Core 2.0にアップグレードした後、マイグレーションを作成できない
質問
ASP.NET Core 2.0 にアップグレードしたら、マイグレーションを作成できなくなったようです。
次のようなメッセージが表示されます。
クラス 'Program' でメソッド 'BuildWebHost' を呼び出す際にエラーが発生しました。 'Program'上でメソッド 'BuildWebHost' を呼び出しているときにエラーが発生しました。アプリケーションサービスプロバイダなしで続行します。エラーです。 1つまたは複数のエラーが発生しました。(ログインで要求されたデータベース "..."を開くことができません。 を開けません。ログインに失敗しました。ユーザー '...'"'' のためのログインに失敗しました。
と
"タイプ 'MyContext' のオブジェクトを作成することができません。プロジェクトに IDesignTimeDbContextFactory'の実装をプロジェクトに追加するか、または、以下を参照してください。 https://go.microsoft.com/fwlink/?linkid=851728 を参照してください。 を参照してください。
以前実行したコマンドは
$ dotnet ef migrations add InitialCreate --startup-project "..\Web"
(DBContextのあるプロジェクト/フォルダから)を実行しました。
接続文字列です。
"Server=(localdb)\\mssqllocaldb;Database=database;Trusted_Connection=True;MultipleActiveResultSets=true"
これは私のProgram.csです。
public class Program
{
public static void Main(string[] args)
{
BuildWebHost(args).Run();
}
public static IWebHost BuildWebHost(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseStartup<Startup>()
.Build();
}
どのように解決するのですか?
Webプロジェクト内にIDesignTimeDbContextFactoryを実装したクラスを追加します。
以下はサンプルコードです。
public class DesignTimeDbContextFactory : IDesignTimeDbContextFactory<CodingBlastDbContext>
{
public CodingBlastDbContext CreateDbContext(string[] args)
{
IConfigurationRoot configuration = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json")
.Build();
var builder = new DbContextOptionsBuilder<CodingBlastDbContext>();
var connectionString = configuration.GetConnectionString("DefaultConnection");
builder.UseSqlServer(connectionString);
return new CodingBlastDbContext(builder.Options);
}
}
次に、Databaseプロジェクトに移動して、コマンドラインから以下を実行します。
dotnet ef migrations add InitialMigration -s ../Web/
dotnet ef database update -s ../Web/
-s stands for startup project and ../Web/ is the location of my web/startup project.
関連
-
[解決済み] [Solved] 1つ以上のエンティティで検証に失敗しました。詳細は'EntityValidationErrors'プロパティを参照してください [重複]。
-
[解決済み】Ajax処理で「無効なJSONプリミティブ」と表示される件
-
[解決済み] [Entity Framework 4.1でエンティティに関連オブジェクトを追加する際に、エンティティオブジェクトをIEntityChangeTracker.の複数のインスタンスから参照できない。
-
[解決済み】Excel "外部テーブルが期待された形式ではありません。"
-
[解決済み】ORA-01008: すべての変数がバインドされていません。これらはバインドされています。
-
[解決済み] EntityTypeにキーが定義されていないエラー
-
[解決済み】インデックスが範囲外でした。コレクションパラメータname:indexのサイズより小さく、非負でなければなりません。
-
[解決済み】プロセスが実行されているかどうかを知るには?
-
[解決済み】ユーザー設定値を別のユーザー設定値で設定する
-
[解決済み] ASP.NET CoreでカスタムのAuthorizeAttributeを作成する方法は?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】C#におけるtypedefの等価性
-
[解決済み】統合マネージドパイプラインモードで適用されないASP.NETの設定が検出された
-
[解決済み】ソケットのアドレス(プロトコル/ネットワークアドレス/ポート)は、通常1つしか使用できない?
-
[解決済み】クロススレッド操作が有効でない。作成されたスレッド以外のスレッドからアクセスされたコントロール
-
[解決済み】Unity 「関連するスクリプトを読み込むことができません」「Win32Exception: システムは指定されたファイルを見つけることができません"
-
[解決済み】"指定されたパスのフォーマットはサポートされていません。"
-
[解決済み】ランダムなブーリアンを生成する最速の方法
-
[解決済み】インデックスが範囲外でした。コレクションパラメータname:indexのサイズより小さく、非負でなければなりません。
-
[解決済み】パラメータ付きRedirectToAction
-
[解決済み】WebResource.axdとは何ですか?