亚音速3 - 更新的NullReferenceException(Subsonic 3 - Upd

2019-09-20 16:42发布

我使用的亚音速v3.0.0.3与LINQ的模板。 我试图在以下配置的SQL Server Express数据库更新记录:

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()

任何机会,有人可能能够提出的问题是什么?

Answer 1:

嗯 - 我要说,以确保连接字符串存在(我会固定错误信息丢失在未来几周内连接字符串)以外 - 这看起来像一个问题 - 你不介意在Github上发布?



Answer 2:

我做了一个简单的更新,其中给我的NullReferenceException

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

步骤到代码后,我发现在查询行/ update.cs L186

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.QualifiedNameColumnName = column.Name

后解决这个问题,更新运行良好。 希望有一个人可以检查此。



文章来源: Subsonic 3 - Update NullReferenceException