我喜欢的一种模式(我不知道它是否是一个可识别的模式)是通过您在DBContext上创建扩展方法的,它允许您加载包含查询的类。这意味着你可以在一定程度上划分你的查询。
public static XTypeQueries XTypeQueries(this EntityModel db)
{
return new XTypeQueries(db);
}
,并在一个单独的文件
public class XTypeQueries : QueryLibrary
{
public XTypeQueries (EntityModel db) : base(db) { }
public IQueryable<Object> DoSomeQuery()
{
return from ... in this.db...
select ...;
}
}
你从伸出的查询库对象只是
public abstract class QueryLibrary
{
protected readonly EntityModel db;
protected QueryLibrary(EntityModel db)
{
this.db = db;
}
}
这样做的结果是,你可以做
var query = new EntityModel().XTypeQueries.DoSomeQuery();
我尽量保持t他的方法就像Queryable,这样当方法被调用时,你可以像你需要的那样具体,而不需要浪费大量的处理。您现在拥有组合在一起的查询库,但其行为与您在Linq上编写的行为一样。
你为什么不尝试通过yuorself一些教程不是要求吗?你自己的经历是你在职业生涯中永远不会忘记的事情。 –
什么教程? –