Subsonic 3 - Update NullReferenceException

做~自己de王妃 提交于 2019-12-08 05:25:10

问题


I am using Subsonic v3.0.0.3 with the Linq templates. I am attempting to update a record in a SQL Server Express database with the following:

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

I am receiving a NullReferenceException when this line is executed. The stack trace is as follows:

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

Any chance that someone may be able to suggest what the problem is?


回答1:


Hmm - I would say to make sure the connection string is present (I'll be fixing the error message for missing connection strings in the coming weeks) other than that - this looks like an issue - would you mind posting at Github?




回答2:


I did a simple update which give me an NullReferenceException

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

After step into the code, I found the line in 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
    };
    ...

The ColumnName = column.QualifiedName should be ColumnName = column.Name.

After correct this, update runs well. Hope some one can check this.



来源:https://stackoverflow.com/questions/1178406/subsonic-3-update-nullreferenceexception

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!