質問: 私はEntity Framework Coreで遊んでいます。私はDatabase-Firstアプリケーションの実装に取り組んでいます。最初のScaffold-DbContextコマンドはうまく動作し、私が望むように整理されていなければ、すべてのエンティティを正しく作成します。それはスキーマを使用して責任領域を分割するSQL Serverデータベースであり、Scaffoldがそれらをすべて単一のフォルダに投げるという事実を気にしません。 それ以外に、データベースの更新が発生した後にScaffoldを再実行してクラスを更新する方法があるかどうかを判断することができませんでした。私が見つけることができる最も近いのは、Scaffold-DbContextコマンドを-forceパラメータで再実行することです。しかし、これはContext.csファイルに追加したカスタムコードを上書きします。ハードコードの代わりに接続文字列を設定値にするなどです。 私はこれに似たいくつかの他の質問を見てきましたが、最初の足場についてのみ話しました。 これを行うために将来の変更を手動でコーディングする方法がないのでしょうか?これがなければ、EFコアではデータベースにはまったく役に立たないアプローチをするようです。
回答: あなたが自分自身と言ったように...データベースの最初のアプローチの主な問題:モデルを手動で変更したり、名前の変更などを始めたりしないでください。データベースがもう変わらないことを100%保証している場合を除きます。 100%確実ではない場合は、自動生成されたモデルでコードを作成してください。 Re-Scaffoldingは、モデルクラスで直接行った変更を上書きし、変更または追加したものをすべて消去します。 しかし、自動マッピングによって上書きされない部分クラスを側で作成することができます: ``` public partial class TableName { public string Name_of_a_property {get; set;} } ``` これは、エンティティにコードを追加するうえで便利な方法ですが、自動マッピングでは触れません。パーシャルビューの名前が自動生成されたクラスと同じで、すべてがOKであることを確認してください。