質問: システムは、Entity FrameworkとSQL Serverを使用して.NET Coreで作成されています。現時点ではかなり大きいですし、まだ成長しています。連続配信パイプラインでは、多くの環境があります。 ``` test1 -> test2 -> test3 -> test4 -> preprod -> prod ``` 各環境は異なる構成を持つことができます。たとえば、Azure、オンプレミス、または外部のプライベートクラウドでホストすることができます。 これらの環境ごとにデータベースにサンプルデータをシードする必要がありますが、各環境には異なるデータセットが必要なことがよくあります。 私は2つのアプローチを見ることができます: 1. SQLスクリプトを書きます。 利点は、SQLスクリプトがSSMSまたは他のコンソールウィンドウから非常に簡単に実行できることです。私が見ている不利な点は、システムが成長したときにそれを維持するのは恐ろしいことです。 私はIDの関係と管理を見つけることを考えています。 2. EF Coreを介して実行できるC#でシーダークラスを作成します。 この解決策は私が容易に維持できるクラスを作成することを可能にし、そして理論的に私はどのシーダークラスが与えられた環境のために実行されるべきであるかを告げる何らかの機能トグルを作成することができる。 DBスキーマが頻繁に変更される場合は、すべてのSQLシードスクリプトを更新する必要があります。スクリプトが無効になる可能性があり、EFコアシーディングメカニズムを使用した場合のように自動的に検出されることはありません。 CDパイプラインでリリースするたびにそのようなシーダークラスを自動的に実行するのは少々怖いと言っていた開発者の一人に話を聞いたことがあります。 問題は適切なアプローチとは何か、そして説明した問題に対してEntity Frameworkを使用できるかどうかです。乾杯
回答: それはすべてあなたの要求とdbのサイズに依存します。私の以前のプロジェクトではSQLスクリプトを作成しましたが、継続的に変化するdBにはあまり適していないかもしれません。次のようなデータジェネレータも使用できます。