处理此代码的更好方法

时间:2014-03-07 12:35:00

标签: asp.net-mvc-3 c#-4.0 fluent-nhibernate

我正在使用nhibernate和SQL server处理MVC3应用程序。写了一个可重复使用的常规方法。请找到下面的代码,让我知道一个更好的方法来处理它。我观察到执行这段代码需要很长时间。

      private void GetParentCompany(IEnumerable<Company> companiesList)
          {
        foreach (var company in companiesList)
        {
            long? dunsUltimateParent = company.DUNSUltimateParent;
            Company ultimateParent = _companyService.GetCompanyByDUNS(Convert.ToInt64(dunsUltimateParent));
            if (ultimateParent != null)
            {
                company.UltimateParentName = ultimateParent.CompanyName;
                company.UltimateCompanyId = ultimateParent.CompanyId;
                company.UltimateParentDuns = ultimateParent.DUNS;
            }
        }
    }

1 个答案:

答案 0 :(得分:0)

为您的公司添加索引.DUNS列可能有所帮助。但是,请考虑引入从公司到(母公司)的多对一关系。

在公司类中放置类型为company的UltimateParent属性。然后,UltimateParentName和UltimateParentDuns字段将是多余的,您可以简单地获取company.UltimateParent.Name。 UltimateParent的映射可以使用&#39; References&#39;在流利的nhibernate。

References(x => x.UltimateParent);