gpt4 book ai didi

c# - 使用 Entity Framework 同步记录

转载 作者:太空狗 更新时间:2023-10-29 23:48:26 26 4
gpt4 key购买 nike

我正在尝试获取 SQL 服务器的功能 MERGE Entity Framework 中的声明。

在 WCF 服务中,我从客户端应用程序接收到记录列表。我想将列表中所有记录中的特定字段与数据库表进行比较。

-如果数据库中有匹配的记录,我需要更新数据库记录中的其他字段。

-如果没有匹配,我需要插入整条记录。

-如果数据库表中有任何不在列表中的记录,我需要删除数据库中的记录。

这是到目前为止我一直在努力处理的代码。



//List of people from whatever source
List peopleList = GetListOfPeopleFromClient();

using (var ctx = new PeopleEntities()) {
foreach (var person in peopleList) {
var dbPerson = ctx.People.FirstOrDefault(p => p.FirstName == person.FirstName);
if (dbPerson == null) {
dbPerson = new Person { FirstName = person.FirstName, LastName = person.LastName };
ctx.People.AddObject(dbPerson);
}
else {
dbPerson.LastName = person.LastName;
}
}
//============
//Yet to figure out how to do:
//delete from People where person.FirstName NOT in peopleList.FirstNames
//===========

ctx.SaveChanges();
}

我的问题是:如何优雅地实现这一目标?

最佳答案

我会为该任务使用同步框架。它似乎非常适合这种情况。

您可以在 MSDN 上找到有关该主题的大量信息。

关于c# - 使用 Entity Framework 同步记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3928873/

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