我是.net 3.5中EF的中间用户,最近又转向使用.net 4。
在阅读各种教程时我不断遇到的一件事是使用ObjectSets而不是ObjectQuerys,它们是一个很棒的新功能。
他们有什么好处?
请赐教。
亲切的问候, 钢钣
答案 0 :(得分:4)
不确定你的问题是否意味着什么,但是ObjectSet的真正优点在于它实现了一个接口 IObjectSet ,这意味着你可以非常轻松地伪造它并测试代码< / strong>向下直到数据访问层。
更酷的是,由于ObjectSet使用泛型类型( IObjectSet&lt; T&gt; ),您可以拥有通用存储库并实现工作单元模式。
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();
}
这里有完整的文章: