.net - Composable 到底是什么意思?

标签 .net entity-framework

我目前正在阅读 Larry Tenny 和 Zeeshan Hirani 合着的 EF4 Recipes 这本书。在阅读这本书的过程中,我经常遇到“可组合”这个词,并且对这个词的含义有一个大致的了解,但没有确切的定义。

我想知道确切的定义是什么,以及是什么使(例如)函数“可组合”?

有关更多上下文,请查看此 FAQ (在页面上寻找“可组合”这个词,只有一个)这与书中的相同上下文非常相似。

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

The parameters for model defined functions don’t show direction. There are no ‘out’ parameters, only implied ‘in’ parameters. The reason for this is that model defined functions are composable and can be used as part of LINQ queries. This prevents them from returning values in output parameters.

最佳答案

从这个意义上说,可组合性意味着您可以进一步细化查询。

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);

所有这些工作都将在 DB 服务器上完成,因为最终查询是由上面代码中构建的部分组成。

WCF 数据服务,OTOH,受到的限制要大得多。您可以投影,也可以订购,但不能在投影上订购。所以上面的代码不起作用,尽管它可以被调整和重新排序才能工作。

关于.net - Composable 到底是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4485576/

相关文章:

c# - 将重复键添加到 NameValueCollection

c# - 访问外部信息的 DDD 方法

c# - EntityFramework 发生异常

c# - 如何应用来自 "Before"的迁移

entity-framework - Entity Framework 代码优先属性结合流畅的api配置

c# - EF 预加载包括多个

c# - 在 LINQ 中采用所有三元运算符?

c# - .NET 4.0 中的动态语言运行时有哪些限制?

c# - ASCII 将 Cr 和 Lf 更改为字符 "¬"和 "¶"

c# - VS 2015 复制以输出项目引用的 GAC 引用,而不考虑复制本地设置