У меня есть база данных со 100 + таблицами, которые сильно нормализованы, и данные не часто меняются. Я использую LinqToSql и инкапсулирую некоторые простые отладки и запросы, чтобы весь дизайн БД не нуждался в понимании для получения данных. Я пытаюсь включить быстрое прототипирование, не заботясь о производительности.Перечислить весь объект LinqToSql
Есть ли простой способ перечислить весь объект LinqToSql в контейнер только для чтения в памяти? Кэш с момента времени тоже будет хорош, если что-то подобное существует. Это будет большой, и я полностью понимаю это.
using (Context db = new Context())
{
var a = db.Table1s.AsEnumerable();
var b = db.Table2s.AsEnumerable();
var q = a.Where(x => x.SomeComplexMethod())
.Join(b...)
}
Я хотел бы быть в состоянии сделать что-то вроде этого:
using (Context db = new Context())
{
var enumerated = db.Materialize();
var q = enumerated.Table1s()
.Where(x => x.SomeComplexMethod())
.Join(enumerated.Table2s...)
}
Я не уверен, что можно сделать доступным только для чтения, но не может ли Entity Framework предоставить вам большую часть функций, которые вы используете? http://www.asp.net/entity-framework – wentimo
@Mark вы хотите создать C# POCOS, который может использоваться в качестве классов модели AFAIK LinqToSql не создает POCOS, вам нужно добавить dbml отдельно к проекту. http://www.codeproject.com/Articles/892233/POCO-Generator это отвечает вашим требованиям –
POCOS используются для реальной сделки, но они больше работают, чтобы делать правильно. Это не для производства, просто что-то быстрое и грязное. –