2012-05-05 13 views
2

フォーラムを検索し、フォーラムを読んで、書く前にすべての提案を読んでください。 (すでに問題を調査している1日)。MySql Connector 6.5.4 - ストアドプロシージャブール値フィールドを持つエンティティを返す - エンティティフレームワーク

使用してイム:Entity Frameworkの4.3とMySQLサーバ5.5のコネクタ6.5.4 で(Iコネクタ6.3.6を使用していたし、すべてが更新され、完全に働いたと、問題が発生した)

私はリストを返すSPを持っていますエンティティオブジェクトのそのEntityはbool(tinyint(1))フィールドを持っていますが、SPを使用するときは文字列として返します。

一時テーブルを作成して返しますが、同じ問題が発生します。エラーは次のとおりです。

System.InvalidOperationException: The 'isDeleted' property on 'Container' could not be 
set to a 'String' value. You must set this property to a non-null value of type 
'Boolean'. at 
System.Data.Common.Internal.Materialization.Shaper.ErrorHandlingValueReader`1. 
GetValue(DbDataReader reader, Int32 ordinal) 

問題は、それがEntityオブジェクトなので、私は)(Convert.ToBooleanすることはできません[も私はしたくありません]。 私は問題は、私はboolとしてSPフィールドをキャストする能力を持っていないか、またはコネクタがバグ(おそらく)を持っているということです。

私が言ったように、それはコネクタ6.3.6

おかげで問題なく働きました。

答えて

1

バグはありますが、回避策が見つかりました。問題は、フィールドの順序が同じでない場合に発生します。

このBUG:http://bugs.mysql.com/bug.php?id=53166は、私が理解し、filedsの選択された順序を同じテーブルにするのを助けました。

例: 表がある場合:

field_a、field_b、field_c

とあなたのストアドプロシージャが返す:field_b、field_aを、field_cは動作しません。

SPがfield_a、field_b、field_cを返すように変更しました

関連する問題