开发者社区 问答 正文

LinqToSQL不更新数据库

// 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

展开
收起
保持可爱mmm 2019-11-18 17:55:42 375 分享 版权
1 条回答
写回答
取消 提交回答
  • 好的,这就是结果。我不能使用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行,并拒绝提交更改。

    2019-11-18 17:55:53
    赞同 展开评论
问答分类:
问答地址: