Прямая ссылка на ObjectContexts, как в LinqPad - PullRequest
2 голосов
/ 23 октября 2011

Я в процессе переноса некоторого кода из LinqPad в обычную среду C # VS2010.

Я заметил, что в LinqPad вы можете просто напрямую использовать ObjectContext (т. Е. Используя имя таблицы во множественном числе), тогда как в моем обычном (VS2010) коде C # мне нужно сначала создать экземпляр ObjectContext.

Проще говоря, скажите, есть ли у меня таблица под названием "Категории". Чтобы получить счет, я могу просто сделать следующее в LinqPad:

int i = Categories.Count();

Но в моей собственной программе я должен сделать это:

MyEntities dc = new MyEntities();
int i = dc.Categories.Count();

Как мне добиться такого дополнительного удобства в моей собственной программе? Я чувствую, что упускаю некоторые фундаментальные вещи ...

Спасибо за помощь!

1 Ответ

4 голосов
/ 23 октября 2011

LINQPad достигает этого путем создания подкласса вашего набранного ObjectContext.Вы можете сделать то же самое в VS, если хотите, хотя это может привести к загромождению вашего класса и, возможно, плохому дизайну, поскольку вам не нужен доступ ни к одному из защищенных членов контекста объекта.

Если выпросто если вам нужны единообразные способы написания запросов в LINQPad и VS, вы можете легко создать эквивалентную переменную в LINQPad следующим образом:

var db = this;
int i = db.Categories.Count();
...