Все они делают одно и то же, с небольшими различиями в синтаксисе.
Во-первых, давайте посмотрим на 3,5 пути и «ваш путь». Если вы посмотрите на файл codegen для вашего EDMX, вы увидите что-то вроде:
public void AddToProducts(Product product)
{
base.AddObject("Products", product);
}
Таким образом, эти два метода абсолютно одинаковы, за исключением того, что магическая строка в вашем коде заменяется версией с кодовым кодом, которая никогда не может ошибаться.
.NET 4 way делает то же самое, но делает это по-другому. Он использует строго типизированный ObjectSet<T>
, что позволяет динамически создавать строго типизированную ссылку, но без использования строк. В случае добавления объекта в контекст, однако, я не знаю реального преимущества, за исключением того, что оно позволяет вам быть более последовательным в отношении ваших ссылок на сущности - вы читаете их из контекста, используя то же свойство (Context.Products
), который вы используете, чтобы написать их.