// goal: update Address record identified by "id", with new data in "colVal"
string cstr = ConnectionApi.GetSqlConnectionString("SwDb"); // get connection str using (DataContext db = new DataContext(cstr)) { Address addr = (from a in db.GetTable
() where a.Id == id select a).Single(); addr.AddressLine1 = colValue.Trim(); db.SubmitChanges(); // this seems to have no effect!!! } 在调试器中,addr具有db表中的所有当前值,并且我可以在调用db.SubmitChanges()之前验证AddressLine1是否已更改。执行SubmitChanges行时,SQL Profiler仅显示“重置连接”。任何人都知道为什么这不起作用?谢谢!问题来源于stack overflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
好的,这就是结果。我不能使用db.Address形式,因为我没有使用设计器来创建数据库对象,而是将它们定义为如下类:
[Table(Name = "Addresses")] public class Address { [Column(Name = "Id",IsPrimaryKey=true)] public int Id { get; set; } [Column(Name = "AddressLine1")] public string AddressLine1 { get; set; } ... 最初,我没有在数据库中将“ Id”列设置为PK,也没有使用上述[Column ...]说明符中的IsPrimaryKey = true进行标识。这都是必需的!一旦进行了更改,ChangeSet便找到了我想做的更新,并进行了更新,但是在此之前,它告诉我需要更新0行,并拒绝提交更改。