我有一些生成的类表示来自dbml文件的表
在表中插入记录可以正常使用Name作为主键
dbDataContext nc = new dbDataContext(connectionstring);
Action action = new Action();
action.Name = "1234"; // primary key
nc.Actions.InsertOnSubmit(action);
nc.SubmitChanges();
但是当Name已经存在时如何更新记录?似乎没有UpdateOnSubmit或任何东西。似乎没有一个明确的答案。
答案 0 :(得分:3)
首先,您需要从数据库中获取记录,然后在该对象中执行更新并保存更改。
Action action = nc.Actions.FristOrDefault(e=>e.Name="1234");
if(action!=null)
{
action.SomeOtherProperty="NewValue";
}
nc.SubmitChanges();
答案 1 :(得分:1)
处理添加和更新案例
public void Persist(Company company)
{
var companyInDb = _dbSet.SingleOrDefault(c => c.Id == company.Id);
if (companyInDb != null)
{
_context.Entry(companyInDb).CurrentValues.SetValues(company);
}
else
{
_dbSet.Add(company);
}
_context.SaveChanges();
}