Dapper的扩展这个你知道嘛?
来源:互联网 发布:男装比较好的淘宝店铺 编辑:程序博客网 时间:2024/05/22 06:17
之前写的ORM对比文章中,我选Dapper作为底层ADO的基础访问框架后,我对此再次进行进一步的深入研究,发现里面还有延伸了一些好用的扩展方法和特性,那我便简单的跟大家说一下特性标签。
一、TableAttribute 特性
这个先对简单,就是对模型进行定义表名,如果你未标注表名特性,默认去模型类型名称,并且此特性只能标注在类上,不能标注在属性,方法等其它作用体上;
二、KeyAttribute [隐式]主键特性
为什么我把它定义隐式呢,关键在于在Insert时,如果你用它标记了一个属性,那这个属性的值无法对应插入到数据表里,比较适合自增类型主键和数据库默认有赋值的主键字段
代码模拟:
[Table("Person")] public class Person { [Key] public Guid ID { get; set; } public string Name { get; set; }
public byte Age { get; set; } }
//最终的脚本是:INSERT INTO [Person] (Name,Age) VALUES (@Name,@Age)
三、ExplicitKeyAttribute [显式]主键特性
我之前也比较纳闷怎么需要定义两种KEY特性,在尝试DEMO后,就发现这个是可以作用在Insert上进行主键值插入
代码模拟:
[Table("Person")] public class Person { [ExplicitKey] public Guid ID { get; set; } public string Name { get; set; } public byte Age { get; set; } } //最终的脚本是:INSERT INTO [Person] (ID,Name,Age) VALUES (@ID,@Name,@Age)
四、WriteAttribute 可写特性
最简单的理解,如果在属性上这么标注:Write(false),表明不可写入,包括:Insert和Update,这个我就不贴代码了,很好理解
五、ComputedAttribute 已计算过特性
单词理解上我觉得就是表明这个属性值是自己计算,不参与任何Insert和Update,但可从数据表读取数据,所以如果在属性上标记这个将无法进行写入和更新值
以上的扩展特性在项目:Dapper.Contrib上,大家在使用的的时候注意引用,此项目也是写Dapper的开发者编写的,请配合扩展方法:Get<T>,GetAll<T>, Insert<T>,Update<T>,Delete<T>,DeleteAll<T>
以上如果有不对的地方,请多多指出!
- Dapper的扩展这个你知道嘛?
- Dapper的扩展这个你知道嘛?
- Dapper的扩展这个你知道嘛?
- ECommon.Dapper 轻量级的dapper扩展
- 你绝对不知道你的浏览器还有这个功能!!!
- 你绝对不知道你的浏览器还有这个功能!!!
- 你绝对不知道你的浏览器还有这个功能
- 你绝对不知道你的浏览器还有这个功能!!!
- 你绝对不知道你的浏览器还有这个功能
- 这个接口你知道吗?
- 知道你的浏览器有这个功能吗
- 绝对不知道你的浏览器还有这个功能
- 程序员这个职业的危险期你知道吗
- 程序员这个职业的危险期你知道吗
- 程序员久坐不动的这个风险,你知道么?
- ORM Dapper 及扩展
- Dapper.net 在Parameterized时对于String的扩展
- Dapper的完整扩展(含Nunit单元测试)
- iOS下音视频通信的实现-基于WebRTC
- SOA概念
- java
- Hive(二)--架构和组件
- 建外部表查看报警日志错误
- Dapper的扩展这个你知道嘛?
- 关于 Flash 存储,你应该知道的一些事情
- 缓存框架 Ehcache Memcache Redis
- MFC- 使用问题集
- C++开源库
- JavaScript 原型的概念及使用
- CentOS6.5安装最新版 firefox
- iOS之SDWEBIMAGE的使用
- Meteor Live Template 定义几个快捷键