Я новичок в EF 4.1 и пытаюсь переместить некоторый код из EF 4.1 (сначала код). Вот немного фона. Я управляю продуктами для нескольких компаний, поэтому у меня есть таблица «Продукт» со столбцом «Компания». Мне нужно обновить (вставить, если не существует, иначе обновить) эту таблицу из файла Excel, содержащего продукты для данной компании (скажем, C1). Вот что я делаю (используя собственный код доступа к БД и LINQ):
- Получить все продукты для компании C1 в виде списка продуктов
- Для каждого продукта, отображаемого в Excel:
- Поиск в загруженном списке продуктов, если продукт из Excel уже существует
- Если товара не существует, то:
- создать новый экземпляр продукта
- добавить товар в базу данных
- добавить товар в список загруженных товаров
Else
- обновить продукт в базе данных
Это довольно просто, но конвертировать его в EF 4.1 не так просто:
Я могу легко получить и отфильтровать все продукты из контекста. Я также могу легко найти продукт Excel в загруженном списке. Если нет, я могу создать продукт и добавить его в контекст. Но как имитировать мою систему «кэширования», в которой я добавляю недавно добавленный продукт в список товаров, загруженных в память (файл Excel может содержать несколько раз один и тот же продукт)? Также, когда изменяется состояние объекта, а когда нужно делать изменения?
Christian