【发布时间】:2011-05-10 12:10:50
【问题描述】:
假设我们创建了实体模型,使用它的首选方式是什么?我个人无法下定决心..
-
使用模型适配器:
public statiс Product[] GetProducts() { using(Entities ctx = new Entities()) { return ctx.Product.ToArray(); } } Product[] ps = ModelAdapter.GetProducts(); // ... ModelAdapter.UpdateProduct(p);- 看起来很整洁;
- 但是,有时会创建/释放很多上下文,对象会失去与上下文的联系;
-
就地使用上下文:
using(Entities ctx = new Entities()) { Product[] ps = ctx.Product.ToArray(); // ... ctx.SaveChanges(); }- 有效
- 但是,代码变得混乱
混合模式,妥协?
-
扩展方法:
using(Entities ctx = new Entities()) { Product[] ps = ctx.GetProducts(); // ... ctx.UpdateProduct(p); }
实际上,我现在正在尝试方法#4,将实用方法实现为上下文的扩展。所以我可以使用一个上下文,并对这个上下文进行多次调用。
【问题讨论】:
标签: c# entity-framework design-patterns coding-style