【问题标题】:Linq To Sql Entity Updated from Trigger从触发器更新的 Linq To Sql 实体
【发布时间】:2010-05-02 01:06:05
【问题描述】:

我有一个名为地址的表。我在该表上有一个用于插入的触发器,它对地址进行一些空间计算,以确定它所在的邻域边界。

address = new Address
            {

                Street = this.Street,
                City = this.City,
                State = this.State,
                ZipCode = this.ZipCode,
                latitude = this.Latitude,
                longitude = this.Longitude,
                YearBuilt = this.YearBuilt,
                LotSize = this.LotSize,
                FinishedSize = this.FinishedSize,
                Bedrooms = this.Bedrooms,
                Bathrooms = this.Bathrooms,
                UseCode = this.UseCode,
                HOA = this.HOA,
                UpdateDate = DateTime.Now

            };

            db.AddToAddresses(address);
            db.SaveChanges();

在数据库中,我可以清楚地看到触发器运行并更新了地址表中该行的邻域ID。我试图重新加载该记录以获取分配的 ID,如下所示:

address = (from a in db.Addresses where a.AddressID == address.AddressID select a).First();

在调试器中我可以清楚地看到 address.AddressID 是正确的,实体不会在内存中更新。 有什么解决办法吗?

【问题讨论】:

    标签: sql-server linq-to-sql triggers


    【解决方案1】:

    我加了

    db.Refresh(System.Data.Objects.RefreshMode.StoreWins, address);
    

    就在

    之前
    address = (from a in db.Addresses where a.AddressID == address.AddressID select a).First();
    

    这解决了我的问题。

    【讨论】:

    • 欢迎来到 Stack Overflow!太好了,您自己解决了问题并分享了解决方案。要遵循 SO 约定,您还应该通过单击复选标记将您的答案标记为“已接受”。
    猜你喜欢
    • 1970-01-01
    • 2011-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-11
    • 2011-08-22
    • 2011-04-27
    相关资源
    最近更新 更多