自己动手写ASP.NET ORM框架(四):关系映射配置—Id属性

上一篇中完成了Table自定义属性的功能,现在来完成Id,因为一张表最主要的是结构就 是表名(Table name)、主键(Id)、列(Column)、主键生成策略。

Id自定义属性的用法代码块1-1:

[Table(name="Student")]
public class StudentEntity
{
   private string stuid;

   [Id(Name = "studentid", Strategy = GenerationType.SEQUENCE)]

   public string Stuid
   {
     get { return stuid; }
     set { stuid = value; }
   }
}

在Stuid属性上[Id]就表示在StudentEntity实体类中,Stuid属性字段对应Student表中主 键ID,Name = "studentid"表示该属性对应Student表中的studentid列名,如果Name值未指 定或者为空,将默认为该属性名称和对应的Student表中的列名相同,都为Stuid。

Strategy = GenerationType.SEQUENCE表示主键生成方式,这里是自动增长。

下面是自定义属性Id的完整代码块1-2:

using System;
using System.Collections.Generic;
using System.Text;

namespace System.Orm.CustomAttributes
{
   [AttributeUsage(AttributeTargets.Field|AttributeTargets.Property,
     AllowMultiple = false, Inherited = false)]
   public class IdAttribute : Attribute
   {
     private string _Name = string.Empty;
     private int _Strategy = GenerationType.INDENTITY;

     public string Name
     {
       get { return _Name; }
       set { _Name = value; }
     }

     public int Strategy
     {
       get { return _Strategy; }
       set { _Strategy = value; }
     }
   }
}

时间: 2024-12-22 15:47:40

自己动手写ASP.NET ORM框架(四):关系映射配置—Id属性的相关文章

自己动手写ASP.NET ORM框架(三):关系映射配置—Table属性

在上一篇随笔中已经完成了ADO.NET操作数据库的封装,并已经支持多数据库,只需要在 配置文件中指定数据库类型即可,本节主要完成对象与数据库表的关系映射配置. 下面看表名的映射配置代码块1-1: [Table(Name="Student")] public class StudentEntity { //...........省略 } 在类上面用[Table(name = "Student")]属性来配置,表示该实体类StudentEntity与数 据库中的Stud

自己动手写ASP.NET ORM框架(五):关系映射配置—Column属性

这次将完成最后一个自定义属性功能Column,在讲Column实现之前先看看Student表的结构 如下: create table student ( studentid VARCHAR2(40), studentno VARCHAR2(40), name VARCHAR2(40), address VARCHAR2(40), telphone VARCHAR2(40) ) 然后来看看Column自定义属性的具体用法代码1-1: using System; using System.Data;

自己动手写ASP.NET ORM框架(二):AdoHelper支持多数据库操作的封装(2)

在上一篇文章中已经分析了AdoHelper的部分代码,接下来将继续分析剩余的部分代码,这里分析ExecuteNonQuery方法的实现,代码块1-1: // <summary>//通过提供的参数,执行无结果集的数据库操作命令// 并返回执行数据库操作所影响的行数.// </summary>// <param name="connectionString">数据库连接字符串</param>// <param name="co

自己动手写ASP.NET ORM框架(六):实现查询功能FindById方法

通过配置实体与表的关系映射后,就可以实现对表的操作了,接下来实现简单对象的新增 功能.下面代码1-1是定义的操作数据对象方法的接口: using System; using System.Collections.Generic; using System.Text; using System.Data; using System.Data.SqlClient; namespace System.Orm.EntityManager { public interface EntityManager

自己动手写ASP.NET ORM框架(一):目标效果预览

最终实现后达到的效果,只需写少量代码就可实现CURD操作. DAL层代码: StudentDAL代码 public class StudentDAL { EntityManager entityManager = EntityManagerFactory.CreateEntityManager(); public StudentDAL() { } public StudentDAL(IDbTransaction transaction) { entityManager.Transaction =

自己动手写ASP.NET ORM框架(七):实现新增功能Save方法

在上一篇中讲了根据ID查询的功能FindById方法,接下来将实现Save方法的功能,代码如 下1-1: #region 将实体数据保存到数据库 public int Save<T>(T entity) { //从实体类中获取新增数据所需的表信息存于TableInfo对象中 TableInfo tableInfo = DbEntityUtils.GetTableInfo (entity,DbOperateType.INSERT); //根据tableInfo对象中的数据生成新增的SQL语句 s

自己动手写ASP.NET ORM框架(九):实现删除功能Remove方法

前面简单的修改功能已经实现了,下面是实现删除功能,代码1-1如下: #region 删除实体对应数据库中的数据 public int Remove<T>(T entity) { TableInfo tableInfo = DbEntityUtils.GetTableInfo(entity, DbOperateType.DELETE); string strSql = DbEntityUtils.GetDeleteByIdSql(tableInfo); IDbDataParameter[] pa

自己动手写ASP.NET ORM框架(八):实现修改功能Update方法

前面一节中已经实现了简单的新增功能,下面来实现修改功能,代码如下1-1: #region 将实体数据修改到数据库 public int Update<T>(T entity) { TableInfo tableInfo = DbEntityUtils.GetTableInfo (entity,DbOperateType.UPDATE); string strSql = DbEntityUtils.GetUpdateSql(tableInfo); IDbDataParameter[] parms

Java的MyBatis框架中Mapper映射配置的使用及原理解析_java

Mapper的内置方法model层就是实体类,对应数据库的表.controller层是Servlet,主要是负责业务模块流程的控制,调用service接口的方法,在struts2就是Action.Service层主要做逻辑判断,Dao层是数据访问层,与数据库进行对接.至于Mapper是mybtis框架的映射用到,mapper映射文件在dao层用. 下面是介绍一下Mapper的内置方法: 1.countByExample ===>根据条件查询数量 int countByExample(UserEx