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

发布于 2024-09-15 20:48:40 字数 970 浏览 1 评论 0原文

我正在使用以下代码来更新表中的记录:

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 为 null在这个地方,我认为这可能是问题所在。我确实在表的 id 字段上设置了主键。我还在 Visual studio 2010 上使用 git 存储库的最新版本。有人知道可能是什么问题吗?

编辑:

通过使用此线程中 nosynchro 的答案来修复:

SubSonic 3 和 MySQL,从 CleanUp() 方法中的列名中删除下划线会导致在 linq-query 中使用属性时出现异常

希望这也能在 git 存储库中得到修复。

I am using the following code to update a record in my table:

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

retrieving the row works perfectly but when I Save() I get a NullReferenceException breaking in the file database.cs line 412, which is the following code:

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

tbl.PrimaryKey is null at this place, which I think may be the problem. I do have a primary key set on the id field of my table. I'm also using the latest build from the git repo on Visual studio 2010. Anyone have an idea of what could be the problem?

EDIT:

Fixed by using the answer from nosynchro in this thread:

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

Hope this also get fixed in the git repo.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

泪冰清 2024-09-22 20:48:40

我是亚音速的新手,当我尝试更新从数据库检索到网格视图的数据时,我遇到了同样的错误。我使用了从该网站获得的一段代码。

代码:

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

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

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

I'm a new one to subsonic, I got this same error when i tried to update my data which retrieve from database to gridview. I used a piece of code which i got from this website.

Code:

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

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

Here, Emptab== Class for my table, (Fname,Mname)==Table's Column name

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文