0

mysql で BLToolkit を使用しています。レコードをテーブルに挿入しようとすると、次のようなクエリが表示されます。

INSERT INTO `P`
(
    `Name`
)
VALUES
(
    \0Name
); 

ご覧のとおり、これは最適な mysql クエリではありません。

クラス:

public class P
{
    [PrimaryKey]
    [Identity]
    public int? ID  { get; set; }
    public string Name  { get; set; }
}

挿入するコード:

var p = new P();
p.Name = "asdf";
p.ID = (int) db.InsertWithIdentity(p);

何が起こっているか知っていますか?

4

1 に答える 1

0

私はすべての BLToolkit コードを確認しましたが、何を見つけたか知っていますか??

バグは MySqlDataProvider にあり、古いバージョンを使用していました...

ここが正しいです: https://github.com/igor-tkachev/bltoolkit/blob/master/Source/Data/DataProvider/MySqlDataProvider.cs

私のエラーはここにあります:

public static char ParameterSymbol
{
    get { return MySqlSqlProvider.ParameterSymbol;  }
    set { MySqlSqlProvider.ParameterSymbol = value; }
}

MySqlSqlProvider.ParameterSymbolプロパティを設定していません。コードは値をローカルに保存しただけです...

于 2015-08-01T15:01:25.500 に答える