将 Linq to SQl 项目移植到 Linq to Oracle
2011-04-20 17:05 麦舒 阅读(4334) 评论(0) 编辑 收藏 举报
要将 Linq to SQL 的项目移植到 Oracle 数据库,首选当然是使用 ALinq 了。
如果你还末接触过 ALinq ,在进行移植前,建议你先看看下面这个系列的文章:
Linq to Oracle 使用教程目录
如果你已经看过了,那么就可以开始了。
准备工作 转换数据库,也就是先把 MS SQL 数据库转换成 Oracle 数据库。我们都知道, Oracle 数据一般来说,是不区分大小写的,所以一般采用下划来分隔单词。那么在导数据库的时候,就有可能出现两种情况,
a. 保持原来的表字,字段名不变。比如说表名 EmployeeTerritories 转换后变成 EMPLOYEETERRITORIES,字段名 EmployeeID 变成了 EMPLOYEEID 。
b. 对表名、字段名重新命名,用下划线来分隔单词。EmployeeTerritories 转换后变成 EMPLOYEE_TERRITORIES,字段名 EmployeeID 变成 EMPLOYEE_ID。(建议采用这种方法转换数据库)
下面就根据这两种情分别介绍移植的步骤:
情况 a :
1、把 *.dbml 文件名改为 *.admf 文件,MSLinqToSQLGenerator 改为 ALinqCodeGenerator 并重新生成代码。
注意:储存过程无法转换。
2、修改连接字符串和 Provider,把 Provider 设为 Oracle ,下图仅供参考:
3、修改表名,例如:把 dbo.Categories 改为 Categories。
4、修改字段的 Server Type 属性。
友情提示:
如果表比较多,可以考虑写个小程序,直接读取 XML 格式的 admf 文件,然后在程序里修改。毕竟手工逐个修改还是挺麻烦的。
情况 b :
对于 b 情况,就简单多了,只需要重新建模就行了。
1、把原来的 dbml 文件都删除,因为我们需要重新建模。
2、新建一个 *admf 文件,然后把表拖到设计器上去。
在建模前,请确定 Remove_Underscores 已经设为 True。菜单:Tools -> Options -> ORDesigner -> General
Remove_Underscores 设为 True 的作用是去掉表名、字段名的下划线,如:EMPLOYEE_TERRITORIES 变成 EmployeeTerritories ,EMPLOYEE_ID 变成 EmployeeID 。
如下图:
重将建模后,接着就是编译,调试了。如果没有存储过程,基本上是可以百分百的转换的。在转换的使用的过程中,有任何疑问,都可以和我联系。
关于自增长列的转换请查看下面这篇文章中,关于 Oracle 的部份。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· [AI/GPT/综述] AI Agent的设计模式综述