这是一个简单的问题,但我不知道答案,我无法让它发挥作用。
我是否只能在整个DataContext上更新一个实体?或者我应该只关注普通的ADO.NET进行此操作吗?
修改
public MyObject GetMyObjectById(int selectedId)
{
DataContext db = _dbManager.GetContext();
return db.MyObject.SingleOrDefault(p => p.Id == selectedId);
}
我正在使用上述查询获得一个对象... 我正在查询另一个表/对象上的整数...
public int GetMyInteger()
{
DataContext db = _dbManager.GetContext();
return db.MyAnotherObject.FirstOrDefault().MyInteger;
}
我的所有操作都很好......但现在我只想更新我从数据库中获得的整数......
public void SetMyInteger(int updInteger)
{
DataContext db = new DataContext(ConnectionString);
MyAnotherObject theEntity = db.MyAnotherObject.FirstOrDefault();
atheEntity.MyInteger = updInteger;
db.SubmitChanges(ConflictMode.ContinueOnConflict);
}
上面的方法删除了我从第一次查询得到的MyObject !!!当然,如果我使用静态上下文,DataContext会尝试更新MyObject和MyAnotherObject,这似乎是正确的行为。
修改
我已经更改了使用新的datacontext获取整数的方法,并且似乎工作正常,我对为什么调用delete方法有一个奇怪的想法,因为它是被调用的方法,但是再次..正在工作现在...
谢谢大家的时间。
答案 0 :(得分:3)
是的,这是可能的。你有什么尝试?应该这么简单:
using (var dc = new YourDataContext())
{
Person p = dc.Persons.Take(1).Single();
p.FirstName = "Ahmad";
dc.SubmitChanges();
}
答案 1 :(得分:1)
是的,你可以:
Foo foo = dc.Foos.Where(foo => foo.Id == 345).Single();
foo.Name = "foo";
dc.SubmitChanges();