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

    前面简单的修改功能已经实现了,下面是实现删除功能,代码1-1如下:

#region 删除实体对应数据库中的数据

public int Remove<T>(T entity)

{

    TableInfo tableInfo = DbEntityUtils.GetTableInfo(entity, DbOperateType.DELETE);

    
    string strSql = DbEntityUtils.GetDeleteByIdSql(tableInfo);

    
    IDbDataParameter[] parms = DbFactory.CreateDbParameters(1);

    
    parms[0].ParameterName = tableInfo.Id.Key;

    
    parms[0].Value = tableInfo.Id.Value;

    
    object val = AdoHelper.ExecuteNonQuery(transaction, CommandType.Text, strSql, parms);

    
    return Convert.ToInt32(val);

}

#endregion

 
#region 根据主键id删除实体对应数据库中的数据

public int Remove<T>(object id) where T : new()

{

    TableInfo tableInfo = DbEntityUtils.GetTableInfo(new T(), DbOperateType.DELETE);

    
    string strSql = DbEntityUtils.GetDeleteByIdSql(tableInfo);

    
    IDbDataParameter[] parms = DbFactory.CreateDbParameters(1);

    
    parms[0].ParameterName = tableInfo.Id.Key;

    
    parms[0].Value = id;

    
    object val = AdoHelper.ExecuteNonQuery(transaction, CommandType.Text, strSql, parms);

    
    return Convert.ToInt32(val);

}

#endregion 

    DbEntityUtils.GetDeleteByIdSql方法代码如下1-2:

public static string GetDeleteByIdSql(TableInfo tableInfo)

{

    string strSql = "delete {0} where {1} =" + AdoHelper.DbParmChar + tableInfo.Id.Key;

    strSql = string.Format(strSql, tableInfo.TableName, tableInfo.Id.Key);

    return strSql;

}

    到这里为止简单的增、删、改、查功能都已完成,还有许多复杂的操作需要完成,但需要大量的时间和精力,这里只是分享一种思路或是作技术交流,所以不再继续深入的研究下去了,如有兴趣的也可以继续研究和分享经验。

    下面是几个类的代码,EntityManagerImpl类:

EntityManagerImpl


EntityManagerFactory类:

EntityManagerFactory


TransactionManager类:

TransactionManager


StudentDAL调用类:

StudentDAL

 

 

有一些园友希望能提供源码,这里将提供源码下载地址OrmTest.rar下载

你可能感兴趣的:(remove)