前言
这是我第一次写技术博客,对语言和思路的组织都将是一次升华和洗礼,也希望能在这里结识到更多的朋友,一起学习,一起进步。代码或思路上有什么不对或需要改进的地方请您一定要告知我,万分感谢大家!!!。
本次分享的ORM框架我取名为:OVLite。
为什么要自己开发ORM框架
C#的ORM框架还是有蛮多的,那为什么还要自己开发呢?我认为呢:
- 不要只学会用,这是知其然不知其所以然的表现;
- 不要光看不练,这样最终还是没有将知识变成自己的(有的人认为我看完了别人的文章之后觉得原来就是这么实现,明白了,但是撇开文章之后让自己写却又无从下手);
- 自己开发完之后会收获很多东西,包括技术,思路。。。;
- 可定制化程度高,别人的不一定合适自己的项目;
- 培养自己的解题思路,可以借鉴别人的,但一定不要抄袭被人的(我一般看别人的软件第一个想法就是如果让我来写,我会怎么去实现它。或者看别人代码的时候我会想是否还有更好、更优的解决方案。我基本上需要的小工具都是自己写,以后会慢慢分享出来的);
先看看成果
新增
var context = DataContextFactory.CreateDataContext();
var db = context.CreateQueryContext<test>();
//添加单个对象并返回对象
var obj = db.Insert(new test
{
IsDeleted = false,
KR_OriginalPassword = "123"
});
//Action添加并返回对象
obj = db.Insert(c =>
{
c.KR_OriginalPassword = "123";
c.IsDeleted = false;
});
//批量添加并返回已添加列表
var list = db.Insert(new test[] {
new test{
KR_OriginalPassword = "123" },
new test{
IsDeleted = false }
});
//快速批量添加不返回对象
db.QuickInsert(new test[] {
new test{
KR_OriginalPassword = "123" },
new test{
IsDeleted = false }
});
删除
//按主键批量删除并返回受影响行数
var count = db.Delete(1, 2, 3);
//按条件删除并返回受影响行数
count = db.Delete(c => c.IsDeleted == false && c.KR_OriginalPassword == "123");
修改
//按对象修改并返回是否成功
var success = db.Update(new test {
id = 1, KR_OriginalPassword