自己动手写个ORM 实现(1)
2008-05-23 17:26
477 查看
最近公司项目开动了,出于各种考虑还是相对保守的采用 .NET 2.0 + 企业库 + SQLSERVER的大体框架.
为了封装单个实体对象的CRUD操作,遂自己动手写了一个orm实现的工具类库.
-------------------------------------------------------------------------------------------------------
首先,我们声明一个实体接口 IEntity
public interface IEntity : ICloneable
public class EntityMappingAttribute : Attribute
public class PropertyMappingAttribute : Attribute
public abstract class EntityBase : IEntity
[Serializable]
[EntityMapping("t_user")]
public class User : EntityBase
public interface IEntityManager
{
T Create<T>(T t) where T : IEntity;
void Update<T>(T t) where T : IEntity;
T Load<T>(int id) where T : IEntity;
void Delete<T>(int id) where T : IEntity;
List<T> LoadAll<T>() where T : IEntity;
}
![](http://222.173.176.83:88/orm/ientitymanager.jpg)
在这里我们声明了几个泛型方法用来实现管理实体对象,并且约束其传入的参数必须实现我们上面声明IEntity接口
--------------------------------------------------
下一节,我们将完成IEntityManager是如何去实现管理实体的功能.
为了封装单个实体对象的CRUD操作,遂自己动手写了一个orm实现的工具类库.
-------------------------------------------------------------------------------------------------------
首先,我们声明一个实体接口 IEntity
public interface IEntity : ICloneable
public class EntityMappingAttribute : Attribute
public class PropertyMappingAttribute : Attribute
public abstract class EntityBase : IEntity
[Serializable]
[EntityMapping("t_user")]
public class User : EntityBase
public interface IEntityManager
{
T Create<T>(T t) where T : IEntity;
void Update<T>(T t) where T : IEntity;
T Load<T>(int id) where T : IEntity;
void Delete<T>(int id) where T : IEntity;
List<T> LoadAll<T>() where T : IEntity;
}
![](http://222.173.176.83:88/orm/ientitymanager.jpg)
在这里我们声明了几个泛型方法用来实现管理实体对象,并且约束其传入的参数必须实现我们上面声明IEntity接口
--------------------------------------------------
下一节,我们将完成IEntityManager是如何去实现管理实体的功能.
相关文章推荐
- 自己动手写个ORM实现(4) 关于反射DataRow数据记录到实体性能的优化
- 自己动手打造ORM(五) —实现
- 自己动手写个ORM实现(2)
- 自己动手写个ORM实现(3)
- 自己动手实现Expression翻译器 – Part Ⅲ
- 自己动手实现一个Android Studio插件
- 【数据结构与算法】自己动手实现图的BFS和DFS(附完整源码)
- 【自己动手写数据结构】 -- 有向带权图的邻接矩阵存储的简单实现
- 自己动手实现纯Web远程监控系统(纯Web,跨浏览器)
- 练习:自己动手实现一个轻量级的信号量(二)
- [导入]自己动手实现 lucene 搜索代码高亮显示
- STL学习】自己动手C++编程实现hash table(散列表)
- 自己动手实现Android App插件化
- 如何自己动手实现 KVO
- 自己动手重新实现LINQ to Objects: 4 - Range
- 【原创】自己动手实现JDK动态代理
- 自己动手写一个编译器Tiny语言解析器实现
- 自己动手重新实现LINQ to Objects: 11 - First,Last,Single以及它们带有OrDefault的重载
- 自己动手开发网络服务器(三):实现多线程
- 自己动手实现简易代码生成器、采用文本模板文件生成服务层、服务层接口代码的做法参考