5

MySQL データベースの TINYINT を TRUE / FALSE ではなく数値として扱う必要がある状況があります。

私が理解していることから、MySQL .Net Connector は TINYINT を Byte としてマップするために使用します。残念ながら、これはもはや当てはまらず、TINYINT は現在ブール値にマップされているようです。以前のように TINYINT を Byte にする必要があります。接続文字列パラメーター「Treat Tiny As Boolean=False」がこの問題を処理することになっていることを知っています。何らかの理由で、Entity Framework を使用している場合、これは機能しないようです。何か案は?

4

1 に答える 1

3

私が行った調査とDustinDavisのコメントを使用して、最終的に問題の解決策を思いつくことができました. 秘訣は、「Treat Tiny As Boolean=False」を接続文字列に追加してから、「SSDL コンテンツ」セクションと「CSDL コンテンツ」セクションで edmx ファイルを編集することです。

「bool」が見つかった SSDL では、「tinyint」に置き換え、「Boolean」が見つかった CSDL では、「SByte」に置き換えます。必要に応じて、「int」と「Int32」も使用できます。ただし、MySQL は実際に「SByte」を提供していると思います。私の状況では、True / Falseに-1 / 0を使用するAccessフロントエンドを介してDBに入力されたデータを読み取っていました。これが、SByte が必要な理由です。

于 2011-07-12T16:44:50.263 に答える