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

2024-04-10

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

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


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

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

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

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

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

  • Fluent NHibernate 中的 NHibernate 配置属性

    我正在考虑在我的项目中使用 Fluent NHibernate 但我还没有找到任何关于 FH 是否支持 NHibernate 设置 例如 show sql 和prepare sql 的文档 我可以在紧要关头没有 show sql 生活 但p
  • 为什么自定义类型变量不保存值MVC

    我正在尝试使用 MVC 5 构建一个网站 我有一个包含 3 个变量的控制器类 public class WorkerController Controller public ViewModel viewModel new ViewModel
  • Visual Studio 2022 - 编译旧应用程序时出错

    我们正在尝试在 Visual Studio 2022 中使用 VB6 32 位应用程序 编译 2002 年以来非常旧的应用程序 我们需要调试此应用程序并能够在 Windows 10 计算机上运行此应用程序 编译时 我们发现以下错误 这似乎是
  • C# .Net Serial DataReceived 事件响应对于高速数据来说太慢

    我已经设置了一个 SerialDataReceivedEventHandler 并在 VS2008 Express 中使用基于表单的程序 我的串口设置如下 115200 8N1 Dtr 和 Rts 已启用 接收字节阈值 1 我有一个通过蓝牙
  • 字典 API(词汇)[关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 有人知道一个好的 NET 字典 API 吗 我对含义不感兴趣 而是我需要能够以多种不同的方式查询单词 返
  • 正则表达式不等于字符串

    我用正则表达式用头撞墙 我正在尝试定义一个表达式 该表达式完全排除此文本 System 不区分大小写 但可以包含 系统 这个词提供的不仅仅是这个 例子 系统 无效 系统 无效 系统 无效 系统 无效 asd 系统 有效 asd 系统 asd
  • Confuser .NET 混淆器。安全吗? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我目前正在开发一个应用程序 其中阻止用户反编译代码非常重要 现在 我意识到 如果由经验丰富的程序员执行 大多数 exe 都是可反编译的
  • ASP.NET MVC 中 ModelState.AddModelError 中的关键参数有什么意义?

    我在我的控制器中添加了验证检查来修改ModelState如果验证失败 例如 private bool ValidateMoney string raw string name decimal min decimal max try var
  • 如何在 VS2017/2015 中打开 .xproj 文件

    我有一个带有扩展名的 NET core 项目 xproj 当我在VS 2017中打开项目时 项目文件 xproj migrated to csproj 如何打开 xproj 文件 Visual Studio 2017 2015 我需要安装任
  • 如何获取Winforms窗体标题栏高度的大小?

    因此 如果它是工具窗口或可最小化的表单 我希望能够以编程方式获取其高度 这可能吗 如果是这样怎么办 您可以使用以下方法确定工具窗口和普通表单的标题栏高度 Rectangle screenRectangle this RectangleToS
  • 如何正确转义mysql?

    我刚刚发现如果我写 select from tbl where name like foo 然后添加 foo 作为参数及其值 a 用户数据 它不会正确转义 我勒个去 它想要 a 即使我使用参数 我还是忍不住觉得我对 sql 注入持开放态度
  • 当我使用 Image.FromFile() 时 FileNotFound

    我在这种情况下使用 Image FromFile string 方法 using System using System Collections Generic using System ComponentModel using Syste
  • c#.NET 和 sprintf 语法

    这段代码如何翻译成 C 具体来说是如何sprintf用C 实现 string output The user s logged in string loggedIn is string loggedOut isn t if TheUser
  • 如何在 Cassandra 中存储无符号整数?

    我通过 Datastax 驱动程序在 Cassandra 中存储一些数据 并且需要存储无符号 16 位和 32 位整数 对于无符号 16 位整数 我可以轻松地将它们存储为有符号 32 位整数 并根据需要进行转换 然而 对于无符号 64 位整
  • 从经典 ASP 调用 .Net C# DLL 方法

    我正在开发一个经典的 asp 项目 该项目需要将字符串发送到 DLL DLL 会将其序列化并发送到 Zebra 热敏打印机 我已经构建了我的 DLL 并使用它注册了regasm其次是 代码库这使得 IIS 能够识别它 虽然我可以设置我的对象
  • 用于 FTP 的文件系统观察器

    我怎样才能实现FileSystemWatcherFTP 位置 在 C 中 这个想法是 每当 FTP 位置添加任何内容时 我都希望将其复制到我的本地计算机 任何想法都会有所帮助 这是我之前问题的后续使用 NET 进行选择性 FTP 下载 ht
  • 枚举扩展方法

    在vs2008中 是否可以编写适用于任何枚举的扩展方法 我知道您可以针对特定枚举编写扩展方法 但我希望能够使用单个扩展方法对每个枚举进行处理 这可能吗 是的 只需针对基础进行编码Enum类型 例如 public static void So
  • VB.NET 中的静态方法实现

    我很困惑Static在 VB NET 中的实现 在 C 中 我们可以创建静态类和静态方法来为我们的应用程序编写实用方法 现在 VB NET 让我们创建Module代替静态类 如果我们在模块中创建一个方法 默认情况下它会变成静态的 但在我的应
  • C# xml序列化必填字段

    我需要将一些字段标记为需要写入 XML 文件 但没有成功 我有一个包含约 30 个属性的配置类 这就是为什么我不能像这样封装所有属性 public string SomeProp get return someProp set if som
  • 从 mvc 控制器使用 Web api 控制器操作

    我有两个控制器 一个mvc控制器和一个api控制器 它们都在同一个项目中 HomeController Controller DataController ApiController 如果我想从 HomeController 中使用 Dat

随机推荐

  • 在 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 代理类发送到客户端 这是我控制的客户端 我们通过系统范围的保留来处理记录更新 因此在任何给定时间只能向客户端发送该实体的