Background - команда, в которой я только что начал использовать EntityFramework;сначала мы спроектировали базу данных, поместили все связи таблиц на место, внешние ключи и т. д .;Затем через Visual Studio добавьте новую модель данных сущности ADO.NET, и мы автоматически получим сгенерированный файл edmx, представляющий всю базу данных!
Теперь я сосредоточусь на двух таблицах, которые предоставляют данные для всех раскрывающихся списков и списков поиска.;
TLookupDomain (domainID, domainName, domainDesc )
TLookup (lookupID, domainID, lookupCode, lookupDisplay, lookupDesc, sortOrder)
Отношение 1-M происходит слева направо:
TLookupDomain -
ИтакlookupID является внешним ключом для 30 таблиц;
IQueryable<TLookup> qList = from l in ctx.TLookups
where l.domainID == 24
select l;
foreach (TLookup l in qList)
{
//do something.
System.Diagnostics.Debug.WriteLine("{0}\t{1}", l.lookupCode, l.lookupDisplay);
foreach (TOther f in l.TOthers)
{
System.Diagnostics.Debug.WriteLine("{0}\t{1}", f.feeAmount, f.feeDesc);
}
}
Когда я выполняю вышеуказанный LINQ, я получаю все поля для таблицы TLookup (что справедливо), но данные также выбираются для30 или около того таблиц, которые связаны с ним, хотя я НЕ заинтересован в данных другой таблицы на данный момент, и я собираюсь отбросить все данные, как только LINQ их получит.
Два вопроса, которые у меня есть:Q.1) Могу ли я как-то изменить запрос LINQ выше или сказать EntityFramework, иначе не беспокоить выборки данных из 30 других связанных таблиц?
Q.2) "правильно" иметь один файл edmx, которыймоДелс всю базу данных?(звучит для меня изворотливо).