gpt4 book ai didi

linq-to-sql - 找出正在更新的字段

转载 作者:行者123 更新时间:2023-12-01 02:50:54 24 4
gpt4 key购买 nike

我正在使用 LINQ To SQL 来更新用户地址。
我正在尝试跟踪哪些字段已更新。
GetChangeSet()方法只是告诉我我正在更新一个实体,但没有告诉我哪些字段。

我还需要什么?

var item = context.Dc.Ecs_TblUserAddresses.Single(a => a.ID == updatedAddress.AddressId);

//ChangeSet tracking
item.Address1 = updatedAddress.AddressLine1;
item.Address2 = updatedAddress.AddressLine2;
item.Address3 = updatedAddress.AddressLine3;
item.City = updatedAddress.City;
item.StateID = updatedAddress.StateId;
item.Zip = updatedAddress.Zip;
item.Zip4 = updatedAddress.Zip4;
item.LastChangeUserID = request.UserMakingRequest;
item.LastChangeDateTime = DateTime.UtcNow;

ChangeSet set = context.Dc.GetChangeSet();

foreach (var update in set.Updates)
{
if (update is EberlDataContext.EberlsDC.Entities.Ecs_TblUserAddress)
{

}
}

最佳答案

使用 ITable.GetModifiedMembers .它返回一个数组 ModifiedMemberInfo 对象,实体上的每个修改过的属性对应一个。 ModifiedMemberInfo 包含 CurrentValueOriginalValue ,向您展示发生了什么变化。这是一个非常方便的 LINQ to SQL 功能。

示例:

ModifiedMemberInfo[] modifiedMembers = context.YourTable.GetModifiedMembers(yourEntityObject);

foreach (ModifiedMemberInfo mmi in modifiedMembers)
{
Console.WriteLine(string.Format("{0} --> {1}", mmi.OriginalValue, mmi.CurrentValue));
}

关于linq-to-sql - 找出正在更新的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5082476/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com