ADO.Net DataService性能问题

时间:2010-09-22 06:17:24

标签: visual-studio-2010 .net-4.0 c#-4.0 wcf-data-services

我们正在使用ADO.Net DataService(.Net Framework 4.0,Visual Studio 2010)。我们有选择,插入,更新和删除操作。

  • 选择我们有
  • 之类的查询

School school = _context.School.Expand(“Address,ContactPerson,ContactPerson / Details ......”)。Where(S =&gt; S.Name ==“xxx”)。SingleOrDefault(); < / p>

  • 用于插入

    _context.AddToSchool(学校);    _contextSaveChanges();

    address.SchoolCode = school.Code; ////地址与学校有关系

    _context.AddToAddress(地址);

//现在我们没有任何级联插入操作。

  • 我们正在使用这样的更新

    //每次更新时,我们都在创建对象,我们正面临着“已经跟踪实体的上下文”或“未跟踪上下文”等问题。这是最糟糕的做法:(

    _context = new DataContext(......)

    AttachObject(“学校”,学校);  _context.UpdateObject(学校);  _context.SaveChanges();

    用于在更新时附加对象的代码片段。

    private void AttachObject(string entitySetName,object entity) {

    if (!_container.Entities.Where(entities => entities.Entity == entity).Any())
    {
        _container.AttachTo(entitySetName, entity);
    }
    

    }

  • 删除

    //现在我们没有任何级联删除操作。

地址address = _context.Address.where(A =&gt; A.Code == deleteAddress.Code).SingleOrDefault();

_context.DeleteObject(地址);  _context.SaveChanges();

即使在本地系统中也要花费大量时间。我害怕性能,这需要在单独的服务器上启动。请告诉我使用“ADO.Net DATASERVICE”的最佳方法是什么

我需要回答而非向下投票:)

编辑:我检查了5行的范围,列为10,嵌套表为4.即使我可以看到单行更新的UI冻结5秒钟。

1 个答案:

答案 0 :(得分:0)

我不会排除查询。

  1. 数据大小是多少?几百行,几百万或几亿?
  2. 索引和磁盘性能?
  3. 如果是远程服务器,连接方式如何?
  4. 现在查询

    1. 确保您没有扩展重复数据。仅扩展所需内容。
    2. 检查您正在扩展的其他数据类型,可能是图像等的二进制文件。
    3. 希望有所帮助。