使用Subsonic(MySql)更新记录时出错

时间:2010-08-25 03:50:37

标签: c# .net mysql subsonic subsonic3

我使用以下代码更新表格中的记录:

var usr = test.Data.user.SingleOrDefault(y => y.id == 1);
usr.name = "test";
usr.Save();

检索行完全有效,但是当我Save()时,我在文件database.cs第412行中得到NullReferenceException,这是以下代码:

Constraint c = new Constraint(ConstraintType.Where, tbl.PrimaryKey.Name)
               {
                   ParameterValue = settings[tbl.PrimaryKey.Name],
                   ParameterName = tbl.PrimaryKey.Name,
                   ConstructionFragment = tbl.PrimaryKey.Name   
               };

tbl.PrimaryKey在这个地方是空的,我认为可能是问题所在。我在我的表的id字段上设置了主键。我也在Visual Studio 2010上使用git repo的最新版本。任何人都知道可能出现什么问题?

编辑:

通过在此主题中使用nosynchro的答案进行修复:

SubSonic 3 and MySQL, removing underscore from column name in CleanUp() method causes exceptions when using property in linq-query

希望这也可以在git repo中修复。

1 个答案:

答案 0 :(得分:0)

我是亚音速的新手,当我尝试更新从数据库检索到gridview的数据时,我遇到了同样的错误。我使用了一段来自本网站的代码。

代码:

   Emptab emp = Emptab.FetchById(txtId.Text);

   emp.Fname = txtFirstName.Text;
   emp.Mname = txtMiddleName.Text;
   .....
   emp.Save();

这里,Emptab ==我的表的类,(Fname,Mname)==表的列名