如何保存具有现有数据和新数据的模型?

use*_*329 10 .net c# entity-framework

我目前有一个拥有现有数据和新数据的模型.

作为一个例子,这是我的模型

 public class NameDetails
    {
        public int Id { get; set; }
        public string Name { get; set; }

    }
Run Code Online (Sandbox Code Playgroud)

这是它目前拥有的模拟数据

  List<NameDetails> Names = new List<NameDetails>{

                new  NameDetails{Id = 1, Name = "Name 1"},
                new NameDetails{Id = 2 , Name = "Name 2"},
            };
Run Code Online (Sandbox Code Playgroud)

现在假设我需要将它保存到数据库中..我已经在表中有id = 1,所以这应该是一个更新,其中id = 2应该是一个添加...我该怎么做?

以前当我使用存储库编写保存时,我做了添加或编辑添加如此,

 context.NameDetails.Add(NameDetails); 
    context.SaveChanges(); 
Run Code Online (Sandbox Code Playgroud)

或像这样编辑,

var recordToUpdate = context.NameDetails.FirstOrDefault(x => x.Id== 1);
recordToUpdate.Name = "New name";
context.SaveChanges();
Run Code Online (Sandbox Code Playgroud)

那么这是否意味着我必须遍历我的列表并找出新的和不是什么......还是有另一种方式?

kar*_*una 0

尝试这个:

var nameIds = Names.Select(n => n.Id);

var recordsToUpdate = context.NameDetails.Where(x => nameIds.Contains(x.Id));
Run Code Online (Sandbox Code Playgroud)