私が開発したアプリケーションは、厳しい環境(開発、テスト、ステージング、本番)にデプロイされます。
開発中に、既存の開発データベースからエンティティモデルを作成しました。すべて正常に動作しますが、アプリケーションをテスト環境に配置したかったので、次の問題に気付きました。
データベースの構造はすべての環境で同じですが、データベーススキーマは環境ごとに異なります。たとえばCustomers、すべてのデータベースにテーブルがあります。私のローカル開発マシンではスキーマdbo([dbo].[Customers])がありますが、テスト環境ではスキーマはtest([test].[Customers])であり、ステージング環境ではスキーマはstag([stag].[Customers])などです。
したがって、アプリケーションをテスト環境にデプロイすると、データベースからデータが取得されません。これは、エンティティフレームワークがデータがにあることを期待している[dbo].[Customers]が、そのようなテーブルがないため、が存在するだけだから[test].[Customers]です。
dbo以外のスキーマを定義できることは知っていますが、デプロイメント環境に応じて異なるスキーマが必要になるため、これは役に立ちません。
助言がありますか?どういうわけか、各環境のすべてのデータベースでスキーマをdboに変更するようにDB管理者に依頼することになります...