Subsonic 3 - 更新NullReferenceException

时间:2009-07-24 15:25:23

标签: subsonic subsonic3

我正在使用带有Linq模板的Subsonic v3.0.0.3。我正在尝试使用以下内容更新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()

有人可能能够提出问题的原因吗?

2 个答案:

答案 0 :(得分:1)

嗯 - 我想说要确保连接字符串存在(我将在未来几周修复缺失连接字符串的错误消息)除此之外 - 这看起来像一个问题 - 你介意在Github上发帖吗?

答案 1 :(得分:1)

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

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

进入代码后,我在Query / 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.QualifiedName应为ColumnName = column.Name

更正后,更新运行良好。希望有人可以检查一下。