自己动手写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;
using System.Collections.Generic;
using System.Text;
using System.Orm.CustomAttributes;

namespace Entity
{
   [Serializable]
   [Table(Name="Student")]
   public class StudentEntity
   {
     private string stuid;
     private string stuno;
     private string name;
     private int sex;
     private int age;
     private string address;
     private string telphone;

     [Id(Name=”studentid”,Strategy = GenerationType.INDENTITY)]
     public string Stuid
     {
       get { return stuid; }
       set { stuid = value; }
     }

     [Column(Name="studentno")]
     public string Stuno 
     {
       get { return stuno; }
       set { stuno = value; }
     }

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

     [Column(IsInsert = false,IsUpdate = false)]
     public int Sex 
     {
       get { return sex; }
       set { sex = value; }
     }

     [Column(IsInsert = false, IsUpdate = false)]
     public int Age
     {
       get { return age; }
       set { age = value; }
     }

     public string Address
     {
       get { return address; }
       set { address = value; }
     }

     public string Telphone
     {
       get { return telphone; }
       set { telphone = value; }
     }
   }
}

时间: 2024-10-27 02:07:11

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

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

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

自己动手写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

自己动手写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

搭建你的Spring.Net+Nhibernate+Asp.Net Mvc 框架 (四)配置全攻略

     本篇目的:配置Spring.Net和Nhibernate.配置Spring.Net来注入Nhibernate需要的SessionFactory,配置业务逻辑层所需要的Dao层属性的支持.配置这套框架与web程序关联.      在上一篇我们已经将三层基本搭建起来了.这篇中我们将要讲述怎样通过配置,将三层通过IOC注入.现在我们开始我们的旅程: 第一步:配置实体类[Model]对应的数据库映射文件.Nhibernate中要求映射文件必须按照约定的文件命名格式进行命名.至于放到什么项目中都