我使用的亚音速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()
任何机会,有人可能能够提出的问题是什么?
嗯 - 我要说,以确保连接字符串存在(我会固定错误信息丢失在未来几周内连接字符串)以外 - 这看起来像一个问题 - 你不介意在Github上发布?
我做了一个简单的更新,其中给我的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.QualifiedName
应ColumnName = column.Name
。
后解决这个问题,更新运行良好。 希望有一个人可以检查此。