【发布时间】:2016-07-08 02:08:38
【问题描述】:
我正在使用 Fluent-NHibernate 来管理所有的数据持久层,我总体上非常高兴(并感谢 NHibernate 社区)。我计划继续使用 OR 映射器。我围绕正在映射的 POCO 开发了一个 API。缺点是 UI 开发人员可以获取和设置所有属性。当我真正想要的是隐藏非中间层开发的属性并且只显示提供的 API 方法来执行操作时。
有人对此有好的策略吗?
过于简单的例子:
member.FName = "Julian"; /// Don't do this because it avoids the my checking
member.LName = "King";
member.setName("Julian", "King"); /// Yes - this will throw an error if this person already exist
【问题讨论】:
-
public setter 和 public operation 有什么区别?两者都产生相同的结果。也许你想让你的类型不可变?
-
操作是指方法吗?您是否建议使用方法而不是属性?
-
是的。不。听起来您想要不可变类型,在这种情况下,您会将所有内容都传递给构造函数。因此将没有设置器或方法来更改状态。
-
说实话,我只是想从自动完成中隐藏一些公共属性。那可能有 99% 的效率。
-
同班同学不能这样。您可以通过说没有设置器的 UI 层来创建一个共享状态的第二类
标签: c# asp.net .net nhibernate fluent-nhibernate