私のプロジェクトでは、SQL ServerとMySqlでEntity Framework 6を使用しようとしています。EF6 with SQL ServerとMYSQL、データベースに不一致データ型あり
今私はISENABLED
という名前のデータベースに列があります。この列はSQL Serverではbool、MYSQLではChar(1)
です。理想的にはMYSQLではBITにする必要がありますが、これは従来のデータベースであるためCharにこの列を使用します。
私はDBからEF6を使用してこのテーブルをフェッチしようとすると、コードではそのデータベースにマッピングされたboolプロパティを持っているため、SQL Serverの場合は成功しましたが、Mysqlの場合、ブールに変換されます。 Singh charはEF6で文字列に変換されます。ここで
は私のコードです:
プロパティは、データベース列のコードにマッピングされた:
public bool IsEnabled { get; set; }
今、私はMySQLのためにしようとしなかった何をされています
private string IsCharBasedEnabled { get; set; }
[NotMapped]
public bool IsEnabled
{
get { return IsCharBasedEnabled == "0"; }
set { IsCharBasedEnabled = value ? "1" : "0"; }
}
私はデータベースにIsCharBasedEnabled
をマッピングされました列のChar
の列は、文字列としてマップされ、上記のようにboolに変換されます。
ただし、このソリューションはSQL Serverでは機能しません。
同じプロパティの両方のデータベースで動作するものはありますか?
私のMySQLデータベースのスキーマは変更できません。
ここで何をすればよいですか?