使用 NHibernate 在同一 ASP.NET 应用程序中支持 Oracle 和 SQL Server 的建议

2023-11-23

我们的客户希望在下一个项目中同时支持 SQL Server 和 Oracle。我们的经验来自.NET/SQL Server 平台。我们将雇用一名 Oracle 开发人员,但我们关心的是 DataAccess 代码。 NHibernate 会让 DB Engine 对我们透明吗?我不这么认为,但我想听听遇到过类似情况的开发人员的意见。

我知道这个问题有点模糊,因为我没有Oracle经验,所以我不知道我们会发现什么问题。


通过遵循一些基本实践,您可以轻松地使用 NHibernate 使您的应用程序与数据库无关:

  • 首先设计您的对象模型。
  • 不要使用任何特定于数据库的代码。您需要具有良好 C# 经验的人,而不是 Oracle 开发人员。不要依赖触发器、存储过程等东西。
  • 让NHibernate至少在最初生成数据库模式(您可以稍后调整索引之类的东西)它将为每个数据库选择最佳的可用数据类型。
  • 使用与数据库无关的 POID 生成器(hilo or guid)而不是序列或身份。
  • 尽量避免使用 SQL。 HQL 和 Linq 在 99% 的情况下都可以正常工作。
  • 避免所有目标数据库不支持的 NH 功能(例如,Future、MultiCriteria 等)

NHibernate 有一个很棒的社区。您可以随时在以下位置提问http://groups.google.com/group/nhusers除了在这里发帖之外。

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

使用 NHibernate 在同一 ASP.NET 应用程序中支持 Oracle 和 SQL Server 的建议 的相关文章

  • 服务器未配置 RPC

    查找我的工作历史 发现以下错误 06 18 2018 00 00 01 MBS Lojas ExportaMR OutrasLojas Error 1 WIN VRT 01 SQL2008 MBS Lojas ExportaMR Outra
  • 查看与存储过程连接的结果

    我在 SQL Server 中有一个由应用程序使用的现有视图 我需要加入从存储过程返回的表 存储过程会执行很多操作 例如在返回结果之前插入多个 temp 表 我尝试将存储过程转换为表值函数 但是插入 TVF 内的临时表会导致编译错误 我还有
  • 使用实用程序批量复制将所有表从 SQL Server 数据库导出到文件中

    我想将数据库中的所有表 bcp 到文件中 SELECT EXEC xp cmdshell bcp bcp QUOTENAME DB NAME database name QUOTENAME SCHEMA NAME SCHEMA ID sch
  • 关于pl/sql异常的问题

    以下文字摘录自oracle文档Oracle Database PL SQL 语言参考 11g 第 1 版 11 1 未处理的异常也会影响 子程序 如果退出子程序 成功后 PL SQL 将值分配给 输出参数 但是 如果您退出 带有未处理的异常
  • 在 apex 中根据 2 种不同类型的用户进行自定义身份验证

    我有一种身份验证方案 目前仅验证用户是否在一个表中 即雇主表中 现在我希望这个身份验证方案来验证用户是雇主还是雇员 并且根据他们是雇主还是雇员 它应该将他们重定向到不同的页面 首先 我如何在身份验证脚本中包含第二个表 我最大的问题是 当员工
  • SQL Server 查看主键

    有没有办法在 sql server 中为视图提供主键 我知道在oracle中这是可能的 我不关心更新它的只读视图 但其他人正在 ms access 中使用它 所以我希望显示我知道正确的约束 是的 您可以创建一个索引视图 http msdn
  • 每组最大 n 个 SQL 查询的高性能方法

    我正在尝试构建一个基础设施 以便根据需要快速运行回归 从包含我们网络服务器上所有历史活动的数据库中提取 apache 请求 为了通过确保我们仍然回归来自较小客户的请求来提高覆盖范围 我想通过为每个客户检索最多 n 个 为了这个问题 假设 1
  • SQL Server - 如何更改仅具有某些特定值的表列?

    TABLE Family BrothersName varchar 30 我已经在 BrothersName 中添加了一些名称 值 但现在我希望它只有 2 个特定名称 Alex and Tom 但稍后它也应该接受其他名称 处理这个问题的最佳
  • ORACLE SQL 中的 MAX()

    我有一个表 存储已完成的维护任务的记录列表以及完成的日期和时间 我正在尝试执行子查询来提取具有最新日期的每个任务的记录 我的SQL语句是 SELECT ENGINEERING COMPLIANCE EO AS EO ENGINEERING
  • Oracle sqlldr是否并行处理多个INFILE

    我正在使用 sqlldr 将数据加载到 Oracle RAC 在 Linux 上 并且我正在尝试提高数据加载的性能 我正在使用 直接路径 并且为 sqlldr 设置了 parallel true 而且 由于我的服务器是多核的 所以默认情况下
  • SQL:从多个表中获取 USER 表中用户记录的计数。最好的方法是什么?

    我有4个SQL Server 2008版本 表 1 USER to store user information Fields UserId UserName 2 FILES to store files uploaded by user
  • postgresql 中的咨询锁超时

    我正在从 ORACLE 迁移 目前我正在尝试移植此呼叫 lkstat DBMS LOCK REQUEST lkhndl DBMS LOCK X MODE lktimeout true 这个功能 http docs oracle com cd
  • 管理员无法管理 SQL Server 报告服务

    我正在 SQL Server 2008 Standard 上运行 SQL Server Reporting Services 并尝试使网页正常工作 我需要做什么才能获得 RS 报表管理器 报表服务连接 首先将我视为管理员 以便我可以更改我的
  • 如何在oracle sql查询中提取括号之间的字符串

    我正在尝试从字符串中提取括号之间的值 我怎样才能做到这一点 例如 我有这个字符串 Gupta Abha 01792 我想得到括号之间的结果 即 01792 我正在尝试编写这样的查询 select substr Gupta Abha 0179
  • SQL Server 2008 中超前滞后函数的替代

    我想将当前行与下一行中的值进行比较 SQL 有LEAD and LAG函数来获取下一个和上一个值 但我无法使用它们 因为我使用的是 SQL Server 2008 那么我该如何得到这个呢 我有带输出的表 Id ActId StatusId
  • 我们可以在 Azure 上的 T-SQL 过程中创建数据库范围的凭据吗

    我们可以在 Azure SQL 上的 T SQL 过程中为共享访问签名创建数据库范围的凭据吗 我们正在尝试从存储在 Azure blob 上的 csv 文件批量插入数据 以下是步骤 使用 JAVA 创建 SAS 凭证 Java将调用存储过程
  • 计算日期范围内的天数以及可能重叠的排除集

    给定以下示例查询 考虑到这些范围可能具有重叠的日期 并且还给出了一组要排除的范围 那么计算日期范围内的总天数的合理且高效的方法是什么 更简单地说 我有一个表 其中包含一组关闭计费的日期范围 我从一个日期范围 例如 Jan1 Jan31 开始
  • 在 SQL Server 中执行嵌套 case 语句逻辑的最佳方法

    我正在编写一个 SQL 查询 其中返回的一些列需要根据很多条件进行计算 我目前正在使用嵌套的 case 语句 但它变得混乱 有更好的 更有组织性和 或可读性 方法吗 我使用的是 Microsoft SQL Server 2005 一个简化的
  • Oracle中“NUMBER”和“NUMBER(*,0)”相同吗?

    在甲骨文中文档 http docs oracle com cd B28359 01 server 111 b28318 datatype htm i22289据说 数字 精度 小数位数 如果未指定精度 则该列将存储给定的值 如果 未指定比例
  • 如何在行的列中插入当前日期

    如何将当前日期插入 MS SqlServer Mgm Studio 中 编辑数据 视图中的行列中 我想得到等价的值GetDate 函数调用 这是我希望能澄清问题的图片 您无法键入函数 因此请键入日期或以下解决方案之一 创建默认值GetDat

随机推荐

  • 从控制台应用程序发送电子邮件时导致套接字异常的原因是什么?

    我正在尝试编写一个基本的控制台应用程序来发送电子邮件 问题是我不断收到 Socket 异常 尝试以访问权限禁止的方式访问套接字 xxx xxx x xxx 25 我关闭了 Windows 防火墙 但它没有改变任何东西 我尝试在指定或不指定凭
  • 比较 2 个自定义对象 - C#

    我需要在基类中编写一个通用方法 该方法接受 2 个对象作为参数并比较它们是否相等 Ex public abstract class BaseData public bool AreEqual object O1 object O2 Need
  • ARM 上的 x86 Docker 镜像

    我有一个由 x86 计算机构建并上传到 Amazon ECR 的 Docker 映像 我正在尝试在 ARM 机器上运行此映像 但是 我得到以下信息 sudo docker run 1b3ed34937e8 WARNING The reque
  • 决定在运行时序列化哪些属性

    假设我必须按级别序列化 Car 类的对象 例如内部和公共 公共级别中的某些属性不应序列化 因为它们是内部的 目前 我能想到的实现此目的的 最简单 方法是使用继承 class CarPublic public int PropX get se
  • 如何在 HTML“选项”标签上显示工具提示?

    无论是使用纯 HTML 还是 jQuery 辅助 JavaScript 如何在个人上显示工具提示
  • 使用 AVPlayer 和 AVAssetExportSession 进行缓存

    我想使用 AVPlayer 缓存渐进式下载视频 如何将 AVPlayer 的项目保存到磁盘 我正在尝试在播放器的 currentItem 已完全加载 上使用 AVAssetExportSession 这段代码给了我 AVAssetExpor
  • Post/Redirect/Get 上的整页重新加载忽略缓存控制

    我有一个加载大量图像 CSS 和 JavaScript 的页面 我添加了一个远期的 Expires 标头 并将这些外部依赖项上的 Cache Control 设置为 public 以便它们应该被缓存 但每次我执行 Post Redirect
  • 运行bash脚本时自动输入密码[重复]

    这个问题在这里已经有答案了 例如 假设我有一个脚本说 bin bash sudo setpci s 00 02 0 F4 B 00 如何将 root 密码放入脚本中 以便在读取和执行 sudo 行时接受它作为密码 这样我就不必手动输入 产卵
  • MySQL 中 UNIX_TIMESTAMP 和 NOW() 的区别

    我有一个博客 用户可以发表评论 我插入他们发表评论的时间NOW 然后使用date j M Y stored timestamp 显示他们发布的时间 我想知道 NOW 是否返回locatime of the end user or the l
  • EntityManager查询后不刷新数据

    我当前的项目使用 HSQLDB2 0 和 JPA2 0 The scenario is I query DB to get list of contactDetails of person I delete single contactIn
  • Java 中的模拟文件 - 模拟内容 - Mockito

    我对模拟还很陌生 我一直在尝试模拟实际内容 本质上仅在内存中创建一个虚拟文件 以便在任何时候都不会将数据写入磁盘 我尝试过一些解决方案 例如模拟文件并模拟尽可能多的我能找出的属性 然后使用文件写入器 缓冲写入器写入其中 但这些解决方案效果不
  • android 工具链缺少 crtbegin_so.o (自定义构建)

    我使用 android build gcc sh 脚本将 gdc 与 gcc 一起编译 并在 build core definitions mk 中包含了一个新的存根 以在构建过程中处理 D 语言文件 我知道此时编译一切正常 但我的问题是链
  • 如何创建带有可重写变量的 PayPal 按钮

    您好 我想创建一个具有动态设定金额的贝宝购买按钮 我想通过表单内的文本输入字段传递金额 并通过隐藏字段传递 item number 问题是 无论我做什么 我都会从 paypal 网站上获得一个加密的 s xclick 按钮 此按钮不允许将隐
  • 2D 平台游戏两个轴的碰撞问题

    我正在使用 C 和 SDL 开发一个小型 2D 平台游戏 格斗游戏 但在碰撞检测方面遇到了很多麻烦 这些关卡由一系列图块组成 我使用 for 循环来遍历每个图块 我知道这可能不是最好的方法 而且我可能也需要这方面的帮助 对于角色的每一侧 我
  • Android:如何避免标题在列表视图中滚动,android?

    我有一个列表视图 我将 headerview 添加到该列表中 一切都很好 但是当滚动列表 headerview 也随着列表移动时 所以我想避免 headerview 滚动 我的意思是当我列表到达顶部视图 标题栏 时我必须只滚动列表 head
  • 如何控制Windows中的文件访问?

    Go 提供os Chmod 用于设置文件和目录权限 例如 如果我想确保文件只能由当前用户访问 我可以执行以下操作 os Chmod somefile txt 0600 这在 Linux 上工作得很好 但在 Windows 上却毫无作用 在深
  • com.google.android.youtube.api.jar.client.RemoteEmbeddedPlayer 中调用的构造函数引发异常

    我已更改依赖项以导入 com android support appcompat v7 23 0 1 和 com android support design 23 0 1 但它无法修复错误 YouTube 片段显示 初始化 Youtube
  • php spaceship 运算符如何比较字符串、数组和对象

    我想知道 php spaceship 运算符如何比较字符串 对象和数组 例如 下面的代码 echo Its Me at SO lt gt Its Me at SO 将返回 0 因为我知道所有字符都相同 计数也相同 但是如果我有如下代码 ec
  • 如何在 svn 中正确地进行提交后分支并恢复主干?

    我有一些提交 事后决定 将更多地进行分支工作 而不是主干工作 如何创建分支并恢复主干 同时仍然确保以后合并不会很痛苦 是否像将当前主干复制到分支并恢复主干一样简单 或者这会导致以后头痛吗 我认为飞利浦的方法将类似于以下内容 假设最后一个 良
  • 使用 NHibernate 在同一 ASP.NET 应用程序中支持 Oracle 和 SQL Server 的建议

    我们的客户希望在下一个项目中同时支持 SQL Server 和 Oracle 我们的经验来自 NET SQL Server 平台 我们将雇用一名 Oracle 开发人员 但我们关心的是 DataAccess 代码 NHibernate 会让