Я пытаюсь найти лучший способ работы с объектами в инфраструктуре сущности. Я не хочу, чтобы мои формы ничего не знали об ObjectContext, поэтому я поместил всю логику внутри сущностей (я пишу частичные классы). Я искал других людей и многого не встречал. Итак, как вы работаете? Как вы получаете объект из ObjectContext и работаете с ним, не теряя его сущностей и все остальное? Я пришел к некоторому решению, но все еще удивляюсь другим. Благодарю.Entity constructors - Entity framework
ответ
После DDD давайте отделим ваши сущности от логики, которая работает на них. Лично я использовал шаблон репозитория, чтобы создать один общий репозиторий, а также некоторые специализированные репозитории, которые работают с моими сущностями. Репозиторий может работать с созданным конструктором ObjectContext или будет создавать новый (из конфигурации), если ни один не указан.
Мой пример IRepository интерфейс:
public interface IRepository<T> where T : class
{
/// <summary>
/// Return all instances of type T.
/// </summary>
/// <returns></returns>
IQueryable<T> All();
/// <summary>
/// Return all instances of type T that match the expression exp.
/// </summary>
/// <param name="exp"></param>
/// <returns></returns>
IEnumerable<T> Find(Func<T, bool> exp);
/// <summary>Returns the single entity matching the expression.
/// Throws an exception if there is not exactly one such entity.</summary>
/// <param name="exp"></param><returns></returns>
T Single(Func<T, bool> exp);
/// <summary>Returns the first element satisfying the condition.</summary>
/// <param name="exp"></param><returns></returns>
T First(Func<T, bool> exp);
/// <summary>
/// Mark an entity to be deleted when the context is saved.
/// </summary>
/// <param name="entity"></param>
void Delete(T entity);
/// <summary>
/// Create a new instance of type T.
/// </summary>
/// <returns></returns>
T CreateInstance();
/// <summary>Persist the data context.</summary>
void SaveAll();
}
Примеры как поставить рамки сущности 4 в п-уровневой Архитектуры в порядке сложности:
- http://devtalk.dk/2009/06/09/Entity+Framework+40+Beta+1+POCO+ObjectSet+Repository+And+UnitOfWork.aspx
- http://blog.keithpatton.com/2009/05/30/Entity+Framework+POCO+Repository+Using+Visual+Studio+2010+Net+40+Beta+1.aspx
- http://danielwertheim.files.wordpress.com/2009/12/putting-entity-framework-4-to-use-in-a-business-architecture-v2.pdf
- http://www.simonsegal.net/blog/2010/01/11/entity-framework-repositories-fetching-strategies-specification-and-mapping-using-nfetchspec-for-role-driven-development-parts-1-4
Кстати, если бы вы предпочли реализовать интерфейс, отправленный @twk, используйте синтаксис IEnumerable<T> Find(Expression<Func<T, bool>> exp);
для всей операции запроса. Внедрение IEnumerable<T> Find(Func<T, bool> exp);
приведет к материализации всей таблицы и фильтрации в памяти.
- 1. Entity Framework Update Entity
- 2. Entity Framework - unmapped entity. Возможное?
- 3. Entity Framework, вычисляемое поле Entity
- 4. Entity Framework Update Navigation Entity
- 5. DI с Entity Framework Entity
- 6. Entity Framework 4.0. Создание Entity
- 7. entity framework
- 8. Entity Framework
- 9. Entity Framework
- 10. Entity Framework + Unity Framework
- 11. Entity Framework и Entity Tracker Проблемы
- 12. Return Only Child Entity Linq Entity Framework
- 13. Entity отношения в Entity Framework код-первый
- 14. Проверка в приложении Framework-Entity Entity
- 15. C# Listbox Обязанный Entity «Entity Framework»
- 16. Entity Framework Удалить Entity без его зависимости
- 17. Entity Framework с mysql, entity без PK
- 18. Entity Framework, пояснение о создании модели Entity
- 19. Entity Framework EDMX - Entity Pluralization Fix
- 20. C# Entity Framework Entity State Modified
- 21. Entity Framework часть LINQ to Entity Queries
- 22. MetadataException при использовании Entity Framework Entity Connection
- 23. Entity Framework Code First ReadOnly Entity
- 24. Entity Framework - DbSet содержит Null Entity
- 25. ADO.Net Entity Framework Пользовательского Entity Вопрос
- 26. Как реализовать INotifyPropertyChanged на Entity Framework Entity
- 27. Как обновить Entity в Entity Framework
- 28. Entity Framework - Просмотр 2 отсоединен Entity обновление
- 29. Entity Framework 5, несколько моделей, Same Entity
- 30. Ограничение емкости Framework Entity Framework