Composable究竟意味着什么?

Sha*_*jib 12 .net entity-framework

我目前正在阅读Larry Tenny和Zeeshan Hirani撰写的EF4食谱.在阅读这本书的过程中,我偶然发现了"可组合"这个词,并且对这个词的含义有了一般意义,但没有确切的定义.

我想知道确切的定义是什么,以及是什么使(比如说)功能"可组合"?

有关更多上下文,请查看此常见问题解答(在页面上查找单词"可组合",只有一个),这与本书中的相同上下文非常相似.

这是一个段落,我对它的含义感到困惑(来自书页397):

模型定义函数的参数不显示方向.没有'out'参数,只隐含'in'参数.原因是模型定义的函数是 可组合的,可以用作LINQ查询的一部分.这可以防止它们返回输出参数中的值.

Cra*_*ntz 7

从这个意义上讲,可组合性意味着您可以进一步优化查询.

EF查询非常易于组合.因此,您可以进行查询并进行更改:

var q = Context.MyStuff;
q = q.Where(s => s.IsGood);
var r = from s in q select new { Id = s.Id, Description = s.Description };
r = r.OrderBy(s => s.Description);
r = r.Take(100);
Run Code Online (Sandbox Code Playgroud)

所有这些工作都将在数据库服务器上完成,因为最终的查询是它的零件,在上面的代码建立起来的.

WCF数据服务OTOH受到更多限制.您可以投影,也可以订购,但不能订购投影.所以上面的代码不起作用,虽然它可以调整和重新订购工作.