Это может быть вопрос с миллионным ответом, но это меня очень беспокоит.DbContext, Inject или To Inject?
У меня есть приложение mvc, использующее EF. Теперь я вставляю DbContext в свои бизнес-объекты или я делаю это по-другому?
Я могу, очевидно, ввести его, но таким образом я в конечном итоге использую DbContext в своих классах, а не в типизированном контексте. Это означает, что у меня нет IntelliSense и код выглядит менее изящный
например
var test=(from d in context.Set<User>() where d.Username=="testname" select d).FirstOrDefault();
по сравнению с набранным прелестью
var test=(from d in context.Users where d.Username=="testname" select d).FirstOrDefault();
Теперь я знаю, что это не массовый выпуск, но при написании десятки тысячи строк приятно иметь intellisense, особенно если другие кодеры, не знакомые с кодом, помогают.
Я знаю, что есть единица работы, но это, на мой взгляд, работа самого дьявола, когда задействован EF, поскольку он эффективно обертывает шаблон репозитория в шаблоне репозитория, который просто смехотворный. Так что это не вариант для меня.
Так мы вводим, и если да, то почему-то получится типичный контекст?
Или мы не вводим?
не уверен, что проблема с уром. если u использует код, созданный кодом dbcontext, u должен иметь .Users. – Kelmen
Да, как и во втором примере. Однако, если вы используете инъекцию, базовый класс DbContext должен использоваться, а не генерироваться. – coolblue2000
Пожалуйста, проверьте эту статью: http://mehdi.me/ambient-dbcontext-in-ef6 –