技术开发 频道

持久数据层框架设计

    4. 持久数据层对ORM支持

    NHibernate中,每一个实体类都对应一个XML文件,个人看来有些复杂,因此,在此框架中,做了创新:

    以下是自动生成的UserInfo.cs文件实体类完整代码:

    using System;
    using System.Data;
    
/****************************************************
     *
     * Automatically Created by Zivsoft.Data.ORM.Setup
     *
     ****************************************************
*/
    namespace Zivsoft.Data.ORM.Table
    {
          
public class UserInfo:OrmTable
           {
            #region UserId
            [PrimaryKey(
"UserId",DbType.String)]
            
public ColumnValue<string> UserId{
                get{
                    
return new ColumnValue<string> { Name = "UserId", Value = GetString("UserId");
                }
                set{
                    Fields[
"UserId"]=value.Value;
                }
            }
            #endregion  
            #region Password
            [Column(
"Password",DbType.String)]
            
public ColumnValue<string> Password{
             get{
                      
return new ColumnValue<string> {Name = "Password", Value = GetString("Password")};
            }
            set{
                  Fields[
"Password"]=value.Value;
            }
         }
            #endregion

            #region LoginTime
            [Column(
"LoginTime",DbType.DateTime)]
            
public ColumnValue<DateTime?> LoginTime{
               get{
                      
return new ColumnValue<DateTime?> {
                           Name
= "LoginTime", Value = GetDateTime("LoginTime")
                      };
                }
               set{
                   Fields[
"LoginTime"]=value.Value;
                }
            }
            #endregion
        }
    }

     
    通过以上实体类,可以看出只有得到这个类,对应数据库表所有字段、类型、表名信息全部可以得到。

    比如,得到表名的信息:

                                var name=new UserInfo().GetName();

                得到字段UserId的对应数据库名称:

                                 var name=new UserInfo().UserId.Name;

                另外,所有实体类,都可以通过框架自制工具根据数据库生成实体类代码。

0
相关文章