EF を使用して、顧客のシステムにインストールされているレガシー SQL Server データベースにアクセスすることを検討しています。
問題は、データベース スキーマが 100% 一貫していないことです。それらはすべて同じ (関連する) テーブルとフィールドを持っていますが、一部の数値フィールドは異なるデータ型を持っている可能性があります。
私が見る限り、これらのタイプはアプリケーションの観点からは「互換性があります」: たとえば、小さい数字を含むフィールドsmallint
は顧客 A のデータベースにあるかもしれませんが、int
顧客 B のデータベースにあるかもしれません。または、価格を含むフィールドは、decimal(10,2)
A のデータベースではfloat
、B のデータベースでは (そうです、つまり、B は浮動小数点の問題に悩まされる可能性があります。つまり、これはレガシー データベースなのです)。
データベースにアクセスしているのは私たちだけではないため、スキーマを変更する (つまり統合する) ことはできません。Entity Framework はそれに対処できますか (つまり、double
モデル定義が a であると主張した場合、SQL Server テーブルで a を適切に受け入れるdecimal(10,2)
でしょうか)、それとも恐ろしくクラッシュしますか?