entity-framework - 关于 Entity Framework 4 中的对象集的所有炒作是什么?

标签 entity-framework .net-4.0

我是 .net 3.5 中 EF 的中级用户,最近转而使用 .net 4。

在阅读各种教程时,我不断遇到的一件事是使用 ObjectSet 而不是 ObjectQuery,它们是一项很棒的新功能。

他们有什么了不起的?

请赐教。

亲切的问候, 科汉

最佳答案

不确定这是否是您问题中的意思,但 ObjectSet 真正酷的是它实现了一个接口(interface) IObjectSet,这意味着您可以非常轻松地伪造它并测试代码 向下直到数据访问层。

更酷的是,由于 ObjectSet 使用泛型类型 (IObjectSet< T >),因此您可以拥有一个通用存储库并实现工作单元模式。

public interface IRepository<T> where T : class
{
     IQueryable<T> GetQuery();
     IEnumerable<T> GetAll();
     IEnumerable<T> Find(Func<T, bool> where);
     T Single(Func<T, bool> where);
     T First(Func<T, bool> where);

     void Delete(T entity);
     void Add(T entity);
     void Attach(T entity);
     void SaveChanges();
}

完整的文章在这里:

http://elegantcode.com/2009/12/15/entity-framework-ef4-generic-repository-and-unit-of-work-prototype/

关于entity-framework - 关于 Entity Framework 4 中的对象集的所有炒作是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2809790/

相关文章:

c# - 使用特定的重载而不进行强制转换?

.net - 诊断 MissingMethodException

.net - 为什么 IEnumerable 比 IQueryable 快?

asp.net-mvc - 如果在 asp.net MVC 3 + EntityFramework 中列名为 "Model",如何保存数据

c# - 使用客户端配置文件类库访问 web.config

c# - 如何确定我的 DLL 是否正在注册或执行?

c# - 使用 Linq 检查日期在范围内

entity-framework - Breeze.js 不支持具有 TimeSpan 属性的 EF 实体?

c# - 如何在 Entity Framework Code First 中设置 0..* 关系?

security - .NET 4.0 客户端证书验证错误