MicroOrm.Net(2) 基础及动态特性
MicroOrm.Net主页:
http://code.google.com/p/micro-orm-net/
MicroOrm.Net系列随便目录总览:
http://www.cnblogs.com/mapserver/archive/2012/04/07/2436129.html
在传统的orm中,我们操作Table的时候,必须先有Model的定义,但是在MicroOrm.Net中,我们可以不定义Model,来直接操作Table。
假如我们在db中有OrderDetail这样一张表:
CREATE TABLE [dbo].[OrderDetail]( [OrderDetailId] [nvarchar](50) NOT NULL , [OrderId] [nvarchar](50) NULL , [ProductId] [nvarchar](50) NULL , [Qty] [ int ] NULL , CONSTRAINT [PK_OrderDetail] PRIMARY KEY CLUSTERED ( [OrderDetailId] ASC ) WITH (PAD_INDEX = OFF , STATISTICS_NORECOMPUTE = OFF , IGNORE_DUP_KEY = OFF , ALLOW_ROW_LOCKS = ON , ALLOW_PAGE_LOCKS = ON ) ON [ PRIMARY ] ) ON [ PRIMARY ] |
在你的项目中引用MicroOrm.Net,修改项目的config文件,配置db的链接字符串:
<connectionStrings> <add name= "db" connectionString= "..." providerName= "System.Data.SqlClient" /> </connectionStrings> |
编写下面代码:
var db = Database.Open( "db" ); var od = db.OrderDetail.Query() .First(); string orderId = od.OrderId; string productId = od.ProductId; |
我们来分析下上面代码:
var db = Database.Open("db"); 我们创建了一个db对象,此对象为DynamicObject。
var od = db.OrderDetail.Query().First(); 因为db对象是一个DynamicObject,所以它的OrderDetail属性,在运行的时候,才会被解析并且和数据库里的OrderDetail表自动产生关联,Query方法是我们查询的一个基准方法,最后再返回表里的第一行记录。
string orderId = od.OrderId; 因为od也是DynamicObject,它的OrderId属性,也是在运行时来解析的。
当然如果你定义了Model,那么也能轻松的把DynamicObject转换为Model强类型对象:
public class OrderDetail { public string OrderDetailId { get ; set ; } public string OrderId { get ; set ; } public string ProductId { get ; set ; } public int Qty { get ; set ; } } // 方式1 OrderDetail od = db.OrderDetail.Query() .First() .To<OrderDetail>(); // 方式2 od = db.OrderDetail.Query() .First<OrderDetail>(); |
至此我们一个简单的Demo就完成了,我们没有定义Model,没有Model-Table Mapping,Orm也可以这么简单。
分类:
MicroOrm.Net
标签:
MicroOrm.Net
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!