Сначала я следую подходу базы данных; Я создал таблицы в своей базе данных SQL Server 2008, затем сопоставляю эти таблицы классам Entity Framework с использованием модели данных сущности ADO.NET. Но когда я открыл файл designer.cs я нашел следующий код в определении класса, который был создан автоматически:Почему Entity Framework автоматически использует объект ObjectContext вместо DbContext при сопоставлении таблиц базы данных с использованием ADO.NET Entity datamodel
public partial class PortalEntities : ObjectContext
поэтому я следующие три вопроса, которые получают мое замешательство:
Почему делает мой класс
PortalEntities
отObjectContext
, а неDbContext
, как я и ожидал?Есть большая разница между
ObjectContext
&DbContext
, или они в основном то же самое, и предлагают, что одни и те же возможностиКогда я пытаюсь написать что-то подобное следующему коду:
Student student = db.Students.Find(id);
Я нашел, что не могу использовать метод .Find()
, как я использовал, используя DbContext
, так это значит, что ObjectContext
& DbContext
есть разные методы, которые я могу использовать?
BR
спасибо за ваш ответ; но я выиграю от использования DbContext вместо ObjectContext в моей первой оценке базы данных. –
DbContext имеет упрощенный интерфейс. Это будет проще в использовании, и при необходимости вы всегда можете применить его к объекту ObjectContext. Кроме того, DbContext легче высмеивать для целей тестирования. –
Очистить пояснения! Спасибо – GibboK