我目前有一个有现有数据和新数据的模型。如何保存具有现有数据和新数据的模型?
作为一个例子,这是我的模型
public class NameDetails
{
public int Id { get; set; }
public string Name { get; set; }
}
这是模拟数据,它目前拥有
List<NameDetails> Names = new List<NameDetails>{
new NameDetails{Id = 1, Name = "Name 1"},
new NameDetails{Id = 2 , Name = "Name 2"},
};
现在假设我需要保存这个数据库上。我已经有在表中的id = 1,所以应该是一个更新,因为id = 2应该是一个添加...我该怎么做?
以前,当我写了节约使用资源库我没有任何添加或编辑 添加像这样,
context.NameDetails.Add(NameDetails);
context.SaveChanges();
或 编辑像这样,
var recordToUpdate = context.NameDetails.FirstOrDefault(x => x.Id== 1);
recordToUpdate.Name = "New name";
context.SaveChanges();
这是否意味着我必须循环查看我的列表,并计算出什么是新的,哪些不是。还是有其他方法?
您只有2个选项: - 查询数据库以确定对象是否已经存在。或者 - 让对象拥有一些属性以确定它是否是新的(例如,Id = 0) – Reda
不确定它是否真正相关,但您从哪里获取新记录的Id值2? –
@ user2266486或者制作一个执行upsert的存储过程,但我想知道这个问题没有更多 –