c#自定义ORM框架-实体类扩展属性

2024-06-10 08:36

本文主要是介绍c#自定义ORM框架-实体类扩展属性,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

步骤一、建立扩展属性类

实体类扩展属性要继承Attribute基类完成

步骤二、创建实体类并引用扩展实体类属性

Attributes属性定义,主要标明表名和主键名字

/// <summary>
///  表名
/// </summary>
[AttributeUsage(AttributeTargets.Class)]
[System.Serializable]
public class TableNameAttribute : Attribute
{public object _value { get; private set; }public TableNameAttribute(string tableName){this._value = tableName;}
}/// <summary>
/// 主键名
/// </summary>
[AttributeUsage(AttributeTargets.Class)]
[System.Serializable]
public class PrimaryKeyAttribute : Attribute
{public object _value { get; private set; }public PrimaryKeyAttribute(string primaryKey){this._value = primaryKey;}
}// 使用方式(例)/// <summary>/// 学生类/// </summary>[TableName("MapRecord")][PrimaryKey("ID")]public class Student{// 身份IDpublic int Id { get; set; }// 名字public string Name { get; set; }// 长度public long Length { get; set; }}

 1 [AttributeUsage(AttributeTargets.Property)]2     public class FieldAttribute : Attribute3     {4         /// <summary>5         ///是否为主键(true/false)6         /// </summary>7         public bool PropertyKey { get; set; }8         /// <summary>9         /// 是否为自动增长(true/false)
10         /// </summary>
11         public bool Identity { get; set; }
12     }
1 [AttributeUsage(AttributeTargets.Class)]
2     public class TableAttribute:Attribute
3     {
4         /// <summary>
5         /// 数据库表名
6         /// </summary>
7         public string TableName { get; set; }
8     }

 [Table(TableName = "emesc.Dome")]2     [Serializable]3     public class Dome4     {5         [Field(PropertyKey = true)]6         public string EMP_NO { get; set; }7         public string EMP_NAME { get; set; }8         public string EMP_DESC { get; set; }9         public string TYPE { get; set; }
10         public string EMP_RANK { get; set; }
11         public string EMP_PASS { get; set; }
12         public object FACTORY_CODE { get; set; }
13         public DateTime QUIT_DATE { get; set; }
14         public object CALENDAR_CODE { get; set; }
15     }

/// <summary>/// 主键特性(在实体类的上方加这个特性,指定该类的主键名称)/// </summary>[AttributeUsage(AttributeTargets.Class)]public class PrimaryKeyAttribute : Attribute{private PrimaryKeyAttribute(){}private string _name;/// <summary>/// 构造方法/// </summary>/// <param name="name"></param>public PrimaryKeyAttribute(string name){_name = name;}/// <summary>/// 主键名称/// </summary>public string Name{get { return _name; }}}

这篇关于c#自定义ORM框架-实体类扩展属性的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1047671

相关文章

SpringBoot AspectJ切面配合自定义注解实现权限校验的示例详解

《SpringBootAspectJ切面配合自定义注解实现权限校验的示例详解》本文章介绍了如何通过创建自定义的权限校验注解,配合AspectJ切面拦截注解实现权限校验,本文结合实例代码给大家介绍的非... 目录1. 创建权限校验注解2. 创建ASPectJ切面拦截注解校验权限3. 用法示例A. 参考文章本文

C#实现千万数据秒级导入的代码

《C#实现千万数据秒级导入的代码》在实际开发中excel导入很常见,现代社会中很容易遇到大数据处理业务,所以本文我就给大家分享一下千万数据秒级导入怎么实现,文中有详细的代码示例供大家参考,需要的朋友可... 目录前言一、数据存储二、处理逻辑优化前代码处理逻辑优化后的代码总结前言在实际开发中excel导入很

C#使用Spire.Doc for .NET实现HTML转Word的高效方案

《C#使用Spire.Docfor.NET实现HTML转Word的高效方案》在Web开发中,HTML内容的生成与处理是高频需求,然而,当用户需要将HTML页面或动态生成的HTML字符串转换为Wor... 目录引言一、html转Word的典型场景与挑战二、用 Spire.Doc 实现 HTML 转 Word1

C#实现一键批量合并PDF文档

《C#实现一键批量合并PDF文档》这篇文章主要为大家详细介绍了如何使用C#实现一键批量合并PDF文档功能,文中的示例代码简洁易懂,感兴趣的小伙伴可以跟随小编一起学习一下... 目录前言效果展示功能实现1、添加文件2、文件分组(书签)3、定义页码范围4、自定义显示5、定义页面尺寸6、PDF批量合并7、其他方法

Vite 打包目录结构自定义配置小结

《Vite打包目录结构自定义配置小结》在Vite工程开发中,默认打包后的dist目录资源常集中在asset目录下,不利于资源管理,本文基于Rollup配置原理,本文就来介绍一下通过Vite配置自定义... 目录一、实现原理二、具体配置步骤1. 基础配置文件2. 配置说明(1)js 资源分离(2)非 JS 资

C#下Newtonsoft.Json的具体使用

《C#下Newtonsoft.Json的具体使用》Newtonsoft.Json是一个非常流行的C#JSON序列化和反序列化库,它可以方便地将C#对象转换为JSON格式,或者将JSON数据解析为C#对... 目录安装 Newtonsoft.json基本用法1. 序列化 C# 对象为 JSON2. 反序列化

GSON框架下将百度天气JSON数据转JavaBean

《GSON框架下将百度天气JSON数据转JavaBean》这篇文章主要为大家详细介绍了如何在GSON框架下实现将百度天气JSON数据转JavaBean,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录前言一、百度天气jsON1、请求参数2、返回参数3、属性映射二、GSON属性映射实战1、类对象映

C#文件复制异常:"未能找到文件"的解决方案与预防措施

《C#文件复制异常:未能找到文件的解决方案与预防措施》在C#开发中,文件操作是基础中的基础,但有时最基础的File.Copy()方法也会抛出令人困惑的异常,当targetFilePath设置为D:2... 目录一个看似简单的文件操作问题问题重现与错误分析错误代码示例错误信息根本原因分析全面解决方案1. 确保

Python ORM神器之SQLAlchemy基本使用完全指南

《PythonORM神器之SQLAlchemy基本使用完全指南》SQLAlchemy是Python主流ORM框架,通过对象化方式简化数据库操作,支持多数据库,提供引擎、会话、模型等核心组件,实现事务... 目录一、什么是SQLAlchemy?二、安装SQLAlchemy三、核心概念1. Engine(引擎)

基于C#实现PDF转图片的详细教程

《基于C#实现PDF转图片的详细教程》在数字化办公场景中,PDF文件的可视化处理需求日益增长,本文将围绕Spire.PDFfor.NET这一工具,详解如何通过C#将PDF转换为JPG、PNG等主流图片... 目录引言一、组件部署二、快速入门:PDF 转图片的核心 C# 代码三、分辨率设置 - 清晰度的决定因