dbml的UpdateOnSubmit?

时间:2013-11-27 10:28:08

标签: c# .net sql-server

我有一些生成的类表示来自dbml文件的表

在表中插入记录可以正常使用Name作为主键

  dbDataContext nc = new dbDataContext(connectionstring);

  Action action = new Action();
  action.Name = "1234"; // primary key

  nc.Actions.InsertOnSubmit(action);
  nc.SubmitChanges();

但是当Name已经存在时如何更新记录?似乎没有UpdateOnSubmit或任何东西。似乎没有一个明确的答案。

2 个答案:

答案 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();
 }