Краткое прохождение:
- Создайте модель данных объекта (.edmx) в Visual Studio и очистите свойство «custom tool» файла edmx, чтобы предотвратить генерацию кода
- Создайте сущности в вашей модели данных сущностей с теми же именами, что и у классов вашего домена. Свойства объекта также должны иметь те же имена и типы, что и в классах домена
- Создание класса, унаследованного от
ObjectContext
, для предоставления объектов (обычно в том же проекте, что и файл .edmx)
- В этом классе создайте свойство типа
ObjectSet<TEntity>
для каждой из ваших сущностей
Пример кода:
public class SalesContext : ObjectContext
{
public SalesContext(string connectionString, string defaultContainerName)
: base(connectionString, defaultContainerName)
{
this.Customers = CreateObjectSet<Customer>();
this.Products = CreateObjectSet<Product>();
this.Orders = CreateObjectSet<Order>();
this.OrderDetails = CreateObjectSet<OrderDetail>();
}
public ObjectSet<Customer> Customers { get; private set; }
public ObjectSet<Product> Products { get; private set; }
public ObjectSet<Order> Orders { get; private set; }
public ObjectSet<OrderDetail> OrderDetails { get; private set; }
}
Вот и все ...
Важное замечание: если вы используете автоматическое создание прокси для отслеживания изменений (ContextOptions.ProxyCreationEnabled
, что по умолчанию верно), свойства классов вашего домена должны быть виртуальными . Это необходимо, потому что прокси-серверы, сгенерированные EF 4.0, переопределят их для реализации отслеживания изменений.
Если вы не хотите использовать автоматическое создание прокси-сервера, вам придется самостоятельно следить за изменениями. Подробнее см. на этой странице MSDN