【发布时间】:2010-09-22 06:17:23
【问题描述】:
我们正在使用 ADO.Net DataService(.Net Framework 4.0,Visual Studio 2010)。我们有选择、插入、更新和删除操作。
- 对于选择,我们有类似的查询
School school = _context.School.Expand("Address, ContactPerson, ContactPerson/Details......").Where(S => S.Name == "xxx").SingleOrDefault();
-
用于插入
_context.AddToSchool(学校); _contextSaveChanges();
address.SchoolCode = school.Code; //// 地址与学校有关系
_context.AddToAddress(地址);
//现在我们没有任何级联插入操作。
-
对于更新我们正在使用这样的
//每次更新时,我们都在创建对象,我们面临“上下文已经跟踪实体”或“上下文未跟踪”之类的问题。这是最糟糕的做法:(
_context = new DataContext(……)
AttachObject("学校", school); _context.UpdateObject(学校); _context.SaveChanges();
代码 sn-p 用于在更新时附加对象。
private void AttachObject(string entitySetName, object entity) {
if (!_container.Entities.Where(entities => entities.Entity == entity).Any()) { _container.AttachTo(entitySetName, entity); }}
-
用于删除
//现在我们没有任何级联删除操作。
地址地址 = _context.Address.where(A => A.Code == deleteAddress.Code).SingleOrDefault();
_context.DeleteObject(地址); _context.SaveChanges();
即使在本地系统中,这也需要大量时间。我害怕性能,这需要在单独的服务器中启动。请告诉我使用 "ADO.Net DATASERVICE"
的最佳方法是什么我需要答案而不是投反对票:)
编辑:我检查了 5 行的范围,列为 10,嵌套表为 4。即使我可以看到单行更新的 UI 冻结 5 秒。
【问题讨论】:
标签: visual-studio-2010 .net-4.0 c#-4.0 wcf-data-services