Subsonic 亚音速3-这些方法之间有什么区别?

Subsonic 亚音速3-这些方法之间有什么区别?,subsonic,subsonic3,Subsonic,Subsonic3,这种方法效果很好: Person p = new Person(3); p.Name = "Bob"; p.Update(); 但是,如果我有一个IQueryable外键集合,下面的操作将失败 var foreignItems = Person.Find(x => x.ID == 3) foreach(Person p in foreignItems) { p.Name = "Bob"; p.Update(); /*THROWS EXCEPTION */ } 当存储库更新执行来

这种方法效果很好:

Person p = new Person(3);
p.Name = "Bob";
p.Update();
但是,如果我有一个IQueryable外键集合,下面的操作将失败

var foreignItems = Person.Find(x => x.ID == 3)
foreach(Person p in foreignItems)
{
  p.Name = "Bob";
  p.Update(); /*THROWS EXCEPTION */
}

当存储库更新执行来自BuildUpdateQuery的查询时抛出异常,例如-updateperson,其中ID={0},这是错误的语法

这看起来像一个bug,您应该向(亚音速源的新主机)报告它。
与此同时,调用p.Save()可能会解决这个问题。

人们不发布异常的频率让我感到惊讶。显然,这是一个sqlexception,他给出了一个示例消息。看起来像是ss3中的一个bug,你应该报告它。不确定你在哪里报告bug top。Save()调用ActiveRecord中的Update()。那么你在调用Save时是否会遇到相同的异常?否,因为它执行了一个Add,这是错误的。似乎在这个循环中,你说var item=newperson(p.ID);所有保存都可以,但如果Find方法实例化了对象的列表,则不必创建对象的新实例