В настоящее время я занимаюсь рефакторингом кода, который делает мое приложение очень медленным.Я довольно далеко, но мне все еще не хватает некоторых частей головоломки, надеюсь, вы мне поможете.
Мне нравится многократно использовать код Linq to SQL внутри моего проекта.Это мой способ сделать это в данный момент:
public DomainAccount GetStandardUserAccount()
{
return this.DomainAccounts.Where(da => da.DomainAccountType == DomainAccountType.Standarduser).First() as DomainAccount;
}
var CurrentSituation = _context.Employees.ToList().Where(e => e.GetStandardUserAccount().Username.Contains("test")).ToList();
Небольшое уточнение: у каждого сотрудника есть несколько учетных записей домена, где одна всегда является стандартной учетной записью домена (DomainAccountType).
Поскольку Linq можетНе преобразовывать метод C # в sqlstatement (Eventho - это только linq to sql code). Мне нужно сначала преобразовать dbset в список, чтобы я мог использовать GetStandardUserAccount ().Этот код работает медленно из-за всего этого преобразования базы данных.Есть ли способ, которым я могу повторно использовать linq для кода SQL, не превращая его в метод?Я прочитал некоторые темы, и это то, что я получил до сих пор:
Func<Employee, DomainAccount> GetStandardDomainAccount = x => x.DomainAccounts.FirstOrDefault(d => d.DomainAccountType == DomainAccountType.Standarduser);
var TheGoal = _context.Employees.Where(e => e.GetStandardDomainAccount().Username.Contains("Something")).ToList();