1

.net を利用したレポートを追加して、オープン ソースの Web アプリケーションを補足しています。データベースには、Entity Framework によってブール値であると推定される TinyInt(1) である列があります。

私が見つけた問題は、アプリケーションが列を 2 以上の値を持つ列挙として使用しているということでした。残念ながら、このアプリケーションのスキーマを変更することはできません。

列をブール値ではなく SByte にマップするようにフレームワークを設定しようとすると、コンパイル エラーが発生し、Google および Stack 検索はまだ成功していません。

これらの値をフェッチするために手動 SQL をロールインしたカスタム クラスを作成する前に、列を bool 以外のものとして扱うように EF を説得する方法はありますか?

助けてくれてありがとう!

4

1 に答える 1

0

tinyint(1) は 8 ビット値ですが、1 文字の表示 ( (1)) に制限されています。古いバージョンの mysql はブール フィールドをサポートしていなかったため、従来は tinyint(1) を使用してそれらをシミュレートしていました。表示サイズの制限を取り除き、他の 1byte int として扱う必要があります。

于 2012-11-14T17:02:36.553 に答える