Вопрос : Будет самой быстрой дорогой сделать при котором вопрос в linq2sql

Я имею таблицу базы данных содержать много 100 тысяч рядков и я буду попыткой для того чтобы получить те рядки спичке удостоверения личности с той из другой подсовокупности нескольких тысяч ID's.

I имейте IQueryable возвращает рядки и после этого я делаю linq отборное следующим образом: class= " lineNumbers " >
1 >

unitIDs шнура [] = {AAAAAAA ", «AAAAAAB»};

unitEvents var = systemRepository.GetUnitEvents ();

var сопрягает = от a в unitEvents
			  от b в unitIDs
			  где == b a.UnitID
			  выберите новую {a, b};

отсчет = спички int. Отсчет (); class= " ясное " >


Although вышеуказанные работы, он может принять несколько секунд для его для того чтобы закончить спички. Заявление отсчета (). Если я делаю подобное заявление SQL сразу через SQL, то он возвращает в чем секунда. e.g.

select * от unit_event где unitid в («AAAAAAA», «AAAAAAB»)

I am испытанном с Linq/Sql и хотело знать если я использую самое лучшее method.

Perhaps, котор я должен пишу, котор хранят процедуру для того чтобы держать ее все в базе данных?

Many thanks
class=

Ответ : Будет самой быстрой дорогой сделать при котором вопрос в linq2sql

Hi Petroclus;

Сделать a В клаузуле в EF первом отпуске, котор вам будет нужно загружать LinqKit свободно использовать построит сказуемый так, что его можно использовать в вопросе.

Загружайте LinqKit отсюда на дне ==> http://www.albahari.com/nutshell/linqkit.aspx страницы
Unzip архив и раскройте разрешение в визуально студии и установите разрешение к отпуску.
Составьте разрешение. Если никакие ошибки не закрывают разрешение.
Теперь в вашем в настоящее время проекте добавьте справку к LinqKit.dll находится в директории ящика/отпуска проекта LinqKit.
Добавьте используя заявление к вашему ==> проекта using LinqKit;
Внизу функция и вопрос должны работать не.

Следующий соединением будет info на LinqKet.
Динамический, составляя сказуемые выражения
http://www.albahari.com/nutshell/predicatebuilder.aspx

Фернандо
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
общественное IEnumerable GetUnitEventsWhereUnitIDIn (unitIDs шнура [])
{
    сказуемый var = PredicateBuilder.False ();
    foreach (unitID шнура в unitIDs)
    {
        шнур удостоверение личности = unitID;
        сказуемый = сказуемый. Или (=> I.UnitID.Contains I (удостоверение личности));
    }

    возвращенное db.UnitEvents.AsExpandable (). Где (сказуемый);
}
Другие решения  
  •  Как я добавляю кнопки на форме PDF для того чтобы добавить/извлекаю рядки данных?
  •  Шнур ошибки в блоке задвижки?
  •  сколько вариант сервера SQL на одной машине
  •  Внешний вид 2007 не может архивный файл открытой сети сохраненный
  •  Активно директория DNS записывает вопрос
  •  Отчет о доступа 2010 экспорта к CSV с коллекторами?
  •  Прокладчик OCE 9400 не начинает
  •  как добавить десятичное место в формуле в отчете о кристалла seagate
  •  Windows XP и Мичрософт Оутлоок и проблемы установителя Windows
  •  VB6 к VS2010 - консультации тренировки?
  •  
    programming4us programming4us