• SqlHelper简单实现(通过Expression和反射)2.特性和实体设计


    对于需求中的不要暴露DataTable或DataSet,我想到了设计中常用的对象:实体(Entity),通过实体将数据库中的字段封装成类,这样做不仅使代码更有可读性,维护起来也很方便。同时我自定义了一些C#特性来表述字段在数据库中的特性。

    1.递增键:

     1 namespace RA.DataAccess.Attributes
     2 {
     3     /// <summary>
     4     /// 递增键
     5     /// </summary>
     6     [AttributeUsage(AttributeTargets.Property, Inherited = true)]
     7     public class IdentityAttribute:Attribute
     8     {
     9     }
    10 }

    2.主键:

     1 namespace RA.DataAccess.Attributes
     2 {
     3     /// <summary>
     4     /// 主键
     5     /// </summary>
     6     [AttributeUsage(AttributeTargets.Property, Inherited = true)]
     7     public class PrimaryAttribute : Attribute
     8     {
     9         
    10     }
    11 }

    3.表名:

     1 namespace RA.DataAccess.Attributes
     2 {
     3     /// <summary>
     4     /// 表名
     5     /// </summary>
     6     [AttributeUsage(AttributeTargets.Class, Inherited = true)]
     7     public class TableNameAttribute : Attribute
     8     {
     9         public string TableName { get; set; }
    10 
    11         public TableNameAttribute(string name)
    12         {
    13             TableName = name;
    14         }
    15     }
    16 }

     测试用例:

     1 namespace RA.MyBlog.Entity
     2 {
     3     
     4     [TableName("RA_MyBlog_Article")]
     5     public class ArticleEntity
     6     {
     7         [Primary]
     8         [Identity]
     9         //文章ID
    10         public int articleID { get; set; }
    11         //分类ID
    12         public int categoryID { get; set; }
    13         //文章标题
    14         public string articleTitle { get; set; }
    15         //文章版权
    16         public string articleCopyright { get; set; }
    17         //文章创建时间
    18         public DateTime articleDate { get; set; }
    19         //文章摘要
    20         public string articleAbstract { get; set; }
    21         //文章内容
    22         public string articleContain { get; set; }
    23         //文章所属User
    24         public int userID { get; set; }
    25     }
    26 }
  • 相关阅读:
    【hdu 6214】Smallest Minimum Cut
    Spring Boot核心配置
    Spring Cloud是什么?
    Spring Boot开启的2种方式
    JVM运行时区域详解。
    史上最全Java多线程面试题及答案
    Git文件操作命令
    Git的安装配置
    Git SSH连接方式配置
    Intellij Idea乱码解决方案都在这里了
  • 原文地址:https://www.cnblogs.com/kakura/p/6108858.html
Copyright © 2020-2023  润新知