1

LinqテンプレートでSubsonicv3.0.0.3を使用しています。SQLServerExpressデータベースのレコードを次のように更新しようとしています。

var db = new MyDB(Constants.Database);
db.Update<Contact>()
  .Set(d => d.FirstName == contact.FirstName)
  .Where(d => d.Id == contact.Id)
  .Execute();

NullReferenceExceptionこの行が実行されたときにを受信して​​います。スタックトレースは次のとおりです。

   at SubSonic.Query.Update.GetCommand()
   at SubSonic.Query.Update.Execute()

誰かが問題が何であるかを示唆することができるかもしれないというチャンスはありますか?

4

2 に答える 2

1

うーん-それ以外の接続文字列が存在することを確認します(接続文字列が欠落している場合のエラーメッセージは今後数週間で修正されます)-これは問題のようです-Githubに投稿していただけませんか?

于 2009-07-24T17:05:49.790 に答える
1

NullReferenceExceptionを与える簡単な更新を行いました

FarmDB db = new FarmDB();
db.Update<UserInfo>().Set(x => x.phone == "13679178184").Where(x => x.name == "marship").Execute();

コードにステップインした後、Query /update.csL186にその行が見つかりました

internal Setting CreateSetting(IColumn column, bool isExpression)
{
    Setting s = new Setting
    {
        query = this,
        ColumnName = column.Name,
        ParameterName = (_provider.ParameterPrefix + "up_" + column.Name),
        IsExpression = isExpression,
        DataType = column.DataType
    };
    ...

するColumnName = column.QualifiedName必要がありますColumnName = column.Name

これを修正すると、更新は正常に実行されます。誰かがこれをチェックできることを願っています。

于 2010-01-15T17:33:12.667 に答える