既存のデータベースに対して Code First を使用する EF 4.4 (EF 5.0 の .NET 4.0 バージョン) を使用する 1 つの Web サイトがあります。モデル タイプの大文字と小文字の問題のため、回避策が必要な Devart oracle データ プロバイダーを使用しています。
Devart プロバイダが小文字のデータ型を認識してスキーマを解釈できるようにします。(またはそれらの線に沿った何か)
これは、EF 4.1 Database First (これも既存のデータベースに対して) に基づいて構築されたこの Web サイト内のコントロールが読み込まれるまで、適切に機能します。Devart プロバイダーは Web サイト間で共有されているようで、Code First で機能させるための以前の回避策のために、プロバイダーがすべて大文字のデータ型を (正しく) 認識できないというエラーが発生します。
これに対する回避策はありますか、またはデータベース ファーストのアプローチをコード ファーストに変換する必要がありますか?
編集:関連する回避策のコードは次のとおりです。入手したフォーラムの投稿を紛失したようです。Devartフォーラムにあったと思います:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
var config = Devart.Data.Oracle.Entity.Configuration.OracleEntityProviderConfig.Instance;
config.Workarounds.ColumnTypeCasingConventionCompatibility = true;
... initialization code here ...
base.OnModelCreating(modelBuilder);
}
関連するエラーは次のとおりです。
System.Data.MetadataException: Schema specified is not valid. Errors:
Model.ssdl(205,6) : error 0040: The Type CHAR is not qualified with a namespace or alias. Only primitive types can be used without qualification.
Model.ssdl(206,6) : error 0040: The Type VARCHAR2 is not qualified with a namespace or alias. Only primitive types can be used without qualification.
他にもたくさんありますが、行とデータ型が異なるすべて同じエラーです。