向客户端发送 Hibernate 代理类会出现哪些问题

2024-04-10

我有一个 POCO 类,在 WCF 服务层中与 NHibernate 一起使用。我正在考虑尝试将 NHibernate 代理类发送到客户端。这是我控制的客户端。我们通过系统范围的保留来处理记录更新,因此在任何给定时间只能向客户端发送该实体的一份可写副本。我的基本目标是利用 NHibernate 更改跟踪,这样我就不需要从数据库获取副本并重播客户端为更新数据库所做的更改。

假设我可以让它发挥作用,这种方法有什么缺点?


我不会就具体技术来回答这个问题,但我希望你发现这个观点对做出一些决定有用。

恕我直言(以及那些关注的人领域驱动设计 http://en.wikipedia.org/wiki/Domain-driven_design)您应该将实体类型保留在内部,从而与服务类型(也称为值类型)分开。无论如何,实体对于服务接口来说常常过于细粒度。例如,您可能希望从服务层的操作返回结果,该结果实际上是实体模型中不同数据片段的组合。不仅如此,实体的所有字段不一定都可以由客户端直接可变。此外,如果您开始直接公开实体类型,您将面临将自己与底层数据库结构结合在一起的危险,随着时间的推移,这些结构可能需要出于可扩展性原因进行重构。通过将服务的值类型与填充它们的底层实体分离,您可以为自己提供重要的灵活性。

缺点是您正在编写大量值类型,这些值类型基本上是服务域内的“空壳”,通常看起来很像数据访问层内的实体类型。另外,您需要映射函数来在两种类型之间来回转换值。对我来说,对于未来提供的灵活性来说,这是一个很小的代价。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

向客户端发送 Hibernate 代理类会出现哪些问题 的相关文章

  • 使用 netMSMQ 绑定进行有序交付

    使用 WCF netMSMQbinding 时是否可以保证有序交付 我们将一个插入命令后跟多个更新命令放在同一个队列上 有时其中一个更新会击败插入命令 添加了广泛的日志记录后 很明显它们正在以正确的顺序添加到队列中 并以不同的顺序进行处理
  • WCF 未在 IIS 6.0 下运行

    尝试让我的 WCF 服务在 IIS 6 下运行 我已经创建了 svc and aspnet isapi dll映射根据 http msdn microsoft com en us library ms752241 aspx http msd
  • 实体框架和数据库集

    我正在尝试设置一个通用接口来从存储库中检索实体 问题是我需要从 WCF 服务请求数据 而据我所知 泛型不能与操作合约一起使用 所以我有这个在控制台应用程序中工作 而不是使用服务调用 public virtual List
  • 如何读取 Excel XML (C#)

    我想知道是否有一种简单的方法来读取Excel 2010 XML 该 XML 的结构与我以前阅读的不同 特别是 ss index 属性 ss Index 7 使事情变得更加复杂 EDIT 为了更好地解释 我有一个带有 XML 扩展名的文件 可
  • NHibernate - 更新带有触发器的表会导致错误 - 意外行计数:2;预计:1

    因此 我尝试使用 NHibernate 更新 MS SQL 2005 数据库中的对象 请记住 这是许多实时系统中使用的旧数据库 我无法删除触发器 当我的数据提供程序尝试 SaveOrUpdate 一行时 我得到两个返回 一个用于实际更新 一
  • WCF 的“using”语句中出现异常,未正确关闭连接。如何关闭有故障的 WCF 客户端连接或出现异常的连接?

    StackOverflow 上有几个有关关闭 WCF 连接的问题 但排名最高的答案是指此博客 http marcgravell blogspot com 2008 11 dontdontuse using html http marcgra
  • 检查有效的 IMEI

    有人知道如何检查有效的 IMEI 吗 我找到了一个可以检查此页面的功能 http www dotnetfunda com articles article597 imeivalidator in vbnet aspx http www do
  • .Net 中可用的并行技术

    我是 Net 平台的新手 我查了一下 发现 Net中有几种做并行计算的方法 任务并行库中的并行任务 即 Net 3 5 PLINQ Net 4 0 异步编程 Net 2 0 异步主要用于执行 I O 繁重的任务 F 有简洁的语法支持这一点
  • 错误:在 Visual Studio 2013 中找不到类型或命名空间名称“ApplicationUser”

    我正在学习 RESTful WCF 服务 教程 但是当我构建我的应用程序时 我收到此错误 找不到类型或命名空间名称 ApplicationUser 您是否缺少 using 指令或程序集引用 c users basma documents v
  • 如何在.NET中将Assembly类的对象保存到磁盘

    我已将其编码为磁盘上的 Base64 字符串 它需要 dll 表示 我可以将它加载到 Assembly 对象中 但找不到保存它的方法 谢谢 那么 1 如何将Assembly类的对象保存到磁盘 2 如何将base64编码的程序集保存到二进制d
  • 使用 ITextsharp 将 Html 导出为 PDF

    我已经尝试了下面的代码 我也遇到了错误 我正在使用最新的 DLL String strSelectUserListBuilder h1 My First Heading h1 p My first paragraph p String ht
  • 有没有一种简单的方法来使用InternalsVisibleToAttribute?

    我有一个 C 项目和一个测试项目 其中包含主项目的单元测试 我想要可测试的internal方法 我想在没有 Visual Studio 测试项目中可以拥有的神奇 Accessor 对象的情况下测试它们 我想用InternalsVisible
  • WinApi:获取 COM 表单的控件名称

    我想用 Net 框架替换我当前的 UI 自动化工具 QTP 我需要测试 VB6 COM 应用程序 框架的基础之一是使用表单名称 到目前为止 我未能找到使用 Win API 获取这些数据的方法 该解决方案只有一个约束 即该解决方案必须依赖 N
  • 在调试模式下单步执行时跳过方法的属性

    是否有一个属性可以在方法上使用 以便在调试模式下单步执行某些代码时 调试器保持在方法的外部 DebuggerStepThrough docs https learn microsoft com en us dotnet api system
  • 字典 API(词汇)[关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有人知道一个好的 NET 字典 API 吗 我对含义不感兴趣 而是我需要能够以多种不同的方式查询单词 返
  • 计算按月分隔的两个日期之间的天数

    我需要计算两个日期之间的天数 DateTime 但有一个转折 我想知道这两天跨越的每个月有多少天 两个人有简单的方法吗 Example 我的开始日期是 30 03 2011 结束日期是 05 04 2011 那么结果应该是这样的 var r
  • StreamReader,C#,peek

    我有一个 StreamReader 它偶尔会检查它是否有更多内容可以从简单的文本文件中读取 它使用 peek 属性 问题是 当我使用 peek 时 位置发生了变化 尽管不应该发生 FileStream m fsReader new File
  • DotNET 应用程序中的 GDI 句柄

    我的纯 DotNET 库作为非托管桌面应用程序中的插件运行 我收到了稳定的 虽然低 崩溃报告流 这些报告似乎表明 GDI 句柄存在问题 错误消息中的字体等 恢复为系统字体 各种控件的显示崩溃 不久后发生大规模崩溃 我的窗体几乎没有控件 但我
  • ASP.NET MVC 中 ModelState.AddModelError 中的关键参数有什么意义?

    我在我的控制器中添加了验证检查来修改ModelState如果验证失败 例如 private bool ValidateMoney string raw string name decimal min decimal max try var
  • 如何在没有 Visual Studio 的情况下将新文件添加到 .csproj 文件

    如何添加新文件到 csproj从命令提示符 我认为没有任何工具可以响应命令行上的 add project 命令来执行此操作 但我认为您可以幸运地创建一个程序 脚本来直接操作 csproj 文件的 XML 内容 csproj 文件的结构如下所

随机推荐

  • 在 Java 中创建 JSON Web 令牌

    我正在尝试创建一个 JSON Web 令牌 以便使用它通过 Google Analytics API 访问进行刷新令牌调用 我采取了服务帐户方法 根据这种方法 我需要 创建服务帐户 添加使用 Google Analytics 帐户为 Ana
  • 下载带有 play 框架的 typesafe2.0,在网络请求上出现异常 [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 下载了带有
  • 如何将字节数组转回文件并使用 C# 自动打开它?

    我正在编写一些代码来将文件附件添加到我正在构建的应用程序中 我已经添加和删除工作 但我不知道从哪里开始实施开放 我有一个字节数组 来自表字段 我不知道如何使其自动打开 例如 如果我有一个 PDF 字节数组 如何让我的应用程序自动打开 Acr
  • 如何使用模块向 Fortran 公开 Python 回调

    这个 scipy 文档页面 http docs scipy org doc numpy dev f2py python usage html call back arguments关于 F2Py 指出 回调函数 也可以在模块中显式设置 然后
  • 如何访问角度材料弹出/对话框组件内组件的属性?

    我正在从我的组件中打开一个对话框 const dialogRef this dialog open DialogOverviewExampleDialog width 500px data DialogData dialogRef afte
  • mailx 更改发件人姓名

    我明白要更改发件人姓名mailx我应该做以下事情 mailx r email protected cdn cgi l email protection s some subject email protected cdn cgi l ema
  • Boost ASIO:服务器如何知道客户端是否仍然连接?

    我在用boost asio对于服务器 客户端应用程序 服务器一次只接受一个连接 我想知道服务器验证客户端是否仍然连接的最佳方法是什么 这样做的目的是我希望能够知道客户端是否崩溃 以便我可以重新开始侦听新的连接尝试 在我的应用程序中 我使用以
  • 确实开始了。 。 。 end while 表示“块”?

    temp 98 3 begin print Your temperature is temp to s Fahrenheit puts I think you re okay temp 0 1 end while temp lt 98 6
  • 使用不同的密钥库重新签名 apk

    目前 我正在使用私有密钥库文件对 apk 进行签名 但我想使用不同的密钥库文件对该 apk 进行签名 我怎样才能退出那个apk 您可以使用不同的密钥库来退出您的 apk 按着这些次序 签署发布 1 apk gt 1 release apk
  • 为什么 FreePhysicalMemory 给出的值不正确?

    我正在尝试使用 win32 OperatingSystem 类中的 FreePhysicalMemory 属性 问题是 它通常只返回几个 MB 的值 显然 考虑到我的计算机上仅打开 Powershell 我有更多可用 RAM 我正在使用以下
  • XmlSerializer 将 xsi:type 替换为节点名称

    当前 XmlSerializer 生成以下结构
  • user_data中的命令不会在terraform中执行

    您好 EC2 实例已创建 但作为 userdata sh 一部分的命令未执行 当我通过putty手动连接EC2时 我发现EC2实例中没有安装nginx 为了验证脚本是否正在执行 我添加了回显消息 但当我运行 terraform apply
  • 我们如何确定Python中给定月份的天数[重复]

    这个问题在这里已经有答案了 我需要在 python 中计算给定月份的天数 如果用户输入 2011 年 2 月 程序应该能够告诉我 2011 年 2 月有 28 天 谁能告诉我应该使用哪个库来确定给定月份的长度 你应该使用calendar m
  • 如何使用 Material Design 设计警报对话框片段中的按钮样式?

    我想更改警报对话框上的默认按钮样式 标准警报对话框片段 在 Android L 中 如下所示 我希望将右侧按钮的样式设置为普通按钮而不是无边框按钮 Google 本身似乎在各种对话框中使用了这种模式 例如 有谁知道这是否可能 而无需从头开始
  • 如何在 Three.js 中使用反射?

    我想在带有 Three js 的 WebGL 页面中拥有一个反射立方体表面 它应该类似于手机显示屏 反射一些光 但它仍然必须是黑色的 我创建了一个反射立方体 以及反射球体 的示例 并附有详细的注释 现场版本位于 http stemkoski
  • 当用户单击外侧时,警报对话框消失

    大家好 我有一个带有两个文本框的警报框 这里的问题是当用户在弹出窗口之外单击时警报对话框消失 或者当用户单击 确定 按钮时警报对话框消失 所以请在这方面帮助我 提前致谢 final AlertDialog Builder builder n
  • 如何计算FB页面的点赞数?

    我必须做一个非常简单的操作 但我的编程能力还不够 我必须计算 Facebook 页面上的点赞数并将该数字打印在我的网站上 我有两个脚本可以很好地完成普通网站的工作 但它们不想显示页面的点赞数
  • java.lang.NoClassDefFoundError: android.support.v4.view.LayoutInflaterCompat

    我在 4 4 2 版本的 Samsung note 2 中收到以下错误 我也尝试过 HTC One X 4 2 2 我认为它是棒棒糖之前的 因为它在 Lollipop 上运行良好 有什么猜测吗 这是我的 gradle 文件 apply pl
  • 如何使用 Python 获取存储库分支的列表

    我正在尝试使用 Python 和以下代码获取存储库上所有可用分支的列表 import subprocess branches All command git branch r branch list subprocess check out
  • 向客户端发送 Hibernate 代理类会出现哪些问题

    我有一个 POCO 类 在 WCF 服务层中与 NHibernate 一起使用 我正在考虑尝试将 NHibernate 代理类发送到客户端 这是我控制的客户端 我们通过系统范围的保留来处理记录更新 因此在任何给定时间只能向客户端发送该实体的