问题标签 [fluent-interface]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
320 浏览

terminology - 流利的接口和方法链有什么区别?

问题与标题相同。:)

0 投票
4 回答
438 浏览

c# - 流利的 C# 有多远?

这段代码适合生产吗?为什么?

编辑:感谢您的所有评论。我希望您在阅读我将 C# 语法延伸到断点时获得的乐趣,就像阅读您的回复一样。

0 投票
6 回答
597 浏览

c++ - 定义流畅的接口是否会对性能产生影响?

我刚读了这个问题,这给我带来了另一个问题:

考虑这个类:

也可以使用“fluent interface”方法编写:

现在,如果我编写以下代码片段:

return如果我使用该类的第二个实现,附加指令是否会导致性能差异?

我应该打扰吗?(我的猜测是“不”)

0 投票
2 回答
7613 浏览

entity-framework - 代码优先引用一对多

我有以下两个表:

本土化

晚餐

现在我想要我的 POCO 是这样的:

问题是:我们如何使用 EF Fluent API 将 NameLocalization 和 DescriptionLocalization 属性映射到 Localization 的 Id?谢谢

0 投票
4 回答
4641 浏览

c# - 是否有适用于 c# 的流畅电子邮件库?

我最近一直在写一堆电子邮件代码,我突然想到,如果有一个库可以让你流利地用 c# 创建电子邮件,那将是非常酷的。

我快速环顾四周,但找不到任何东西,所以想知道是否有人知道是否已经存在用于 c# 的流利电子邮件库?

0 投票
1 回答
4473 浏览

ms-access - 在 Access 2007 中使用 .png 作为自定义功能区图标

我想在 Access 2007 功能区中使用 .png 作为自定义图标。

这是我到目前为止所尝试的:

我可以毫无问题地将 .bmp 和 .jpg 作为自定义图像加载。我可以加载 .gif,但它似乎无法保持透明度。我根本无法加载.png。我真的很想使用 .png 来利用其他格式中不可用的 alpha 混合。

我在 SO 上发现了一个类似的问题,但这只是处理加载任何类型的自定义图标。我对.png特别感兴趣。Albert Kallal 对该问题的回答是链接到他编写的一个类模块,该模块似乎完全符合我的要求:

不幸的是,该答案中的链接已失效。

我还发现这个站点提供了一个 460 行模块的下载,其中包含数十个 API 调用以获得对透明图标的支持。在我走那条路之前,我想问问这里的专家他们是否知道更好的方法。

我知道 .png 是相当新奇的,但我希望 Office 开发人员能够对该格式提供一些本机支持。

0 投票
1 回答
1027 浏览

c# - 使用实体框架 CTP5 与旧数据库映射关系

我无法使用 Code First / Fluent API 将两个实体与 Entity Framework CTP5 一起映射。该数据库是我们公司正在切换到的另一个应用程序(Exact MAX)的旧数据库,我正在编写一个应用程序供我自己使用来管理我们仓库中的货物。没有任何内容保存到旧数据库中,其中包括本文中提到的实体。

实体是 SalesOrder,它只有一个 Address,以及 Address,它可以有多个 SalesOrder。我必须指定列名,这是问题之一。另一个是地址有两个键,一个客户 ID 和一个地址 ID,它们链接到 SalesOrder 中的匹配列。列名很可怕:表 SO_Master 中的 CUSTID_27 和 SHPCDE_27 用于 SalesOrders,表 SHIPPING_MASTER 中的 CUSTID_24 和 SHPCDE_24 用于地址。

我最终在昨晚深夜放弃了。本文中的代码行来自 SalesOrder 的映射,最后两行用于映射 SalesOrder 和 Address。我从谷歌搜索中收集的每个键都有一个映射,但我什至不确定它应该作为两个单独的通道完成。检索到的 Address 记录本身是可以的,但 SalesOrders 中的记录不是。一个检索到的 SalesOrder 记录具有有效地址,但其余的 SalesOrder 具有空地址。

如果需要,我不会有任何问题使用数据注释。我可以改用 LINQ to SQL,但我想看看是否有使用它的解决方案。也许 EF 不是这个数据库的最佳选择,但代码分离得很好,我可以试验。我正在使用 Visual Studio Express 和 SQL Server Express 2008 R2,但找不到任何允许设计师使用的东西,这就是我使用 Code First 的原因。

感谢您花时间阅读这篇文章。

好的,我最终接受了 Vulgarbinary 的使用数据注释的建议,并在需要的地方使用了 ForeignKey 属性。我仍然必须使用 Fluent API 将地址映射到客户。我不确定为什么。在没有 Fluent API 映射的情况下,地址记录不断与空客户一起返回。我猜是因为我在地址中有两个键用于将地址与订单联系起来,但只有一个键用于客户到地址的映射。

我想我现在了解如何更好地使用 Fluent API,但我显然需要阅读更多内容。我也许可以返回并将某些属性更改回 Fluent 行,但这对于我正在处理的应用程序来说并不值得。

0 投票
2 回答
1038 浏览

entity-framework-4 - EF4 CodeFirst CTP5 nvarchar(max) 通过属性

有没有办法创建一个自定义属性,使 EF CodeFirst在分配给 poco 类的属性时使用nvarchar(max)作为数据类型?我知道这可以通过 fluent api 实现,但我们希望将所有定义放在一个地方,这就是元数据类。

流畅的 API:

0 投票
5 回答
2553 浏览

delphi - Delphi中的流畅界面

在 Delphi中使用流利的接口有什么好处和坏处?

流畅的接口应该增加可读性,但我有点怀疑是否有一个包含许多链接方法的长 LOC。

有编译器问题吗?
有没有调试问题?
是否有任何运行时/错误处理问题?

Fluent 接口用于例如TStringBuilderTHTMLWriterTGpFluentXMLBuilder


更新:
大卫赫弗南问我关心哪些问题。我已经对此进行了一些思考,总体问题是“明确指定如何完成”与“让编译器决定如何完成”之间的区别。

AFAICS,没有关于编译器实际上如何处理链式方法的文档,也没有任何关于编译器应该如何处理链式方法的规范。

本文中,我们可以了解编译器如何将两个额外的 var 参数添加到声明为函数的方法中,并且标准调用约定将三个参数放在寄存器中,然后将下一个参数放在堆栈中。因此,具有 2 个参数的“流利函数方法”将使用堆栈,而具有 2 个参数的“普通过程方法”仅使用寄存器。

我们还知道,编译器在优化二进制文件方面做了一些神奇的事情(例如,作为函数结果的字符串评估顺序对本地 proc 的引用),但有时会给程序员带来令人惊讶的副作用。

因此,内存/堆栈/寄存器管理更复杂的事实以及编译器可以在无意中产生一些副作用的事实对我来说非常难闻。因此问题。

在我阅读了答案(非常好的答案)之后,我的担忧大大减少了,但我的偏好仍然相同:)

0 投票
2 回答
497 浏览

c# - 如何在流畅接口的方法调用中构建序列

嗨,我想构建一个流畅的界面来创建某种工厂或构建器的对象。

我知道我必须“返回这个”才能使方法可链接。

有了这个,我可以建造一辆这样的汽车:

但我需要一个特殊的序列或工作流程:我只能在框架顶部构建轮子,当轮子存在时,我将能够构建引擎。因此,我不想提供汽车制造商的所有方法,而是希望能够仅将框架添加到制造商,然后仅将车轮添加到框架,然后在其上添加引擎......

如果 EngineBuilder 本身有一个像 eBuilder.Cylinders(12).WithPistons() 一样的流利的 api,它会是什么或者什么是一个好的实现......

有没有可能有这样的东西

那么总而言之,如何构造 fluent interface 的流程以及如何嵌套 fluent Interfaces 呢?