数据库特性

/// <summary>
/// 数据库表名
/// </summary>
[AttributeUsage(AttributeTargets.Class)]
public class DBTableNameAttribute : Attribute
{

public string Name { get; set; }
public DBTableNameAttribute(string Name)
{
this.Name = Name;
}
}
/// <summary>
/// 主键名
/// </summary>
[AttributeUsage(AttributeTargets.Class )]
public class DBTableFiledPrimaryKeyAttribute : Attribute
{

public string Name { get; set; }
public DBTableFiledPrimaryKeyAttribute(string Name)
{
this.Name = Name;
}
}
/// <summary>
/// 字段名
/// </summary>
[AttributeUsage(AttributeTargets.Field | AttributeTargets.Property)]
public class DBTableFiledNameAttribute : Attribute
{

public string Name { get; set; }
public DBTableFiledNameAttribute(string Name)
{
this.Name = Name;
}
}
/// <summary>
/// 唯一值
/// </summary>
[AttributeUsage(AttributeTargets.Field | AttributeTargets.Property)]
public class DBTableFiledUniqueAttribute : Attribute
{

public DBTableFiledUniqueAttribute( )
{

}
}

/// <summary>
/// 对MemberInfo类扩展方法
/// </summary>
public static class CustomMemberInfo
{
/// <summary>
/// 判断是否存在相应的特性
/// </summary>
/// <typeparam name="T">特性类</typeparam>
/// <param name="type"></param>
/// <returns></returns>
static public bool HasAttribute<T>(this System.Reflection.MemberInfo type) where T : class
{
object[] attributes = type.GetCustomAttributes(false);

foreach (Attribute attr in attributes)
{

//判断Attribute 中是否 为 UniqueColumnAttribute

if (attr is T)
{
return true;

}

}
return false;
}
/// <summary>
/// 获取相应的Attribute对象 如 var attr=typeof(Person).GetAttribute<DBTableNameAttribute>();
/// </summary>
/// <typeparam name="T">Attribute类</typeparam>
/// <param name="type">实体类</param>
/// <returns>Attribute对象</returns>
static public T GetAttribute<T>(this System.Reflection.MemberInfo type) where T : class
{

Attribute classAttribute = Attribute.GetCustomAttribute(type, typeof(T));

return classAttribute as T;
}
}

时间: 2024-10-11 23:01:01

数据库特性的相关文章

如何利用闪回数据库特性恢复failover 后的dataguard 环境?

11g dataguard standby 切成主库,测试完成后恢复为原standby 环境 ####################### 概述: 11204 单机对单机实施dg,因局方要求需要(读写模式)打开standby :而这时原生产环境不能有任何影响动,依然对外服务: 采用的思路是:standby 直接failover 为primary db:这时原有dg关系被破坏,互不影响: ####################### 思路概要: 1.确认主库归档日志存放空间是否足够?(需考虑归

mysql之数据库特性认识

最近面试经常被面试官问道关于数据库方面的知识,于是总结一下面试官问的题已经逐渐对数据库的认识 1.之前百度面试官问了我一个特别基础的sql问题:如何清除表的所有记录,以前在学校做项目开发的时候有使用过,但是面试的时候一下没有想到,下来才想到该怎么写sql,我都不得不吐槽一下自己 这个问题的sql有两种写法:1.truncate table tablename        truncate table命令将快速删除数据表中的所有记录,但保留数据表结构,数据不可恢复(自增主键从头开始) 2.del

WAF Bypass数据库特性(Oracle探索篇)

0x01 背景 oracle与mysql特性类似,半自动化fuzz了一下,记录成果. 0x02 测试 位置一:参数和union之间的位置 1)空白字符 Oracle中可以利用的空白字符有: %00  %09 %0a  %0b %0c  %0d  %20 2)注释符号/**/ 3)其他字符 %2e  .   点号 位置二:union和select之间的位置 1)空白字符 Oracle中可以利用的空白字符有: %00  %09 %0a  %0b %0c  %0d  %20 2)注释符号/**/ 位置

设置 STATISTICS_LEVEL = BASIC 会禁用哪些数据库特性

设置 STATISTICS_LEVEL = BASIC 会禁用一下oracle 的功能特性 Automatic Workload Repository (AWR) Snapshots Automatic Database Diagnostic Monitor (ADDM) All server-generated alerts Automatic SGA Memory Management  (ASMM)和自动内存管理 Automatic optimizer statistics collect

Oracle 12C 新特性 - “可插拔数据库”功能

Oracle 12C加入了一个非常有新意的功能"可插拔数据库"特性,实现了数据库(PDB)在"容器"(CDB)上的拔功能,既能提高系统资源的利用率,也简化大面积数据库的管理和迁移工作. 下面我们体验一下可插拔数据库的CDB和PDB的操作: 基本信息:根容器(CDB):CUP可插拔数据库(PDB):TEA 启动根容器:[[email protected] ~]$ export ORACLE_SID=cup[[email protected] ~]$ sqlplus /

Oracle数据库备份数据缺失的问题

项目中一直在使用Oracle数据库,由于我之前更多的是关注ORM映射框架,几乎没有关注过Oracle特性的东西,很多东西都不知道,而且项目中换数据库的概率几乎为零,所以有必要好好研究一下Oracle.正所谓,不怕不知道,就怕不知道嘛.不然遇到问题,都不知道从哪里下手. 这两天的Oracle学习,收获不小.前几天测试中遇到很多的稀奇古怪的问题,都被很好的解释了.这里就一个典型的例子谈一谈. 就是在测试阶段,看着经理熟练的操作Oracle的各个指令,内心就已经有了一点不平静.经理就是经理,这都是多少

实验-闪回数据库

一.打开闪回数据库 1.确保数据库处于归档模式,如果为非归档模式,将数据库转换成归档模式 SQL> select name,log_mode from v$database; NAME LOG_MODE --------- ------------ ORCL NOARCHIVELOG SQL> select flashback_on from v$database; FLASHBACK_ON ------- NO 设置为归档模 Connected to Oracle Database 10g

Oracle的专用数据库和共享数据库区别

专用服务器进程(Dedicated server) 对于专用服务器配置,在登录时,Oracle总会创建一个新的进程,这个服务器进程会在会话生存期中专门这个连接服务.对于每个会话,都会出现一个新的专用服务器,会话与专用服务器之间存在一对一的映射.按照定义,这个专用服务器不是实例的一部分用户进程和服务器进程是分开的.每个用户进程都有自己的服务器进程.用户进程和服务器进程可在不同的机器上运行,以利用分布式处理的优势.用户进程和服务器进程的比率是1 比1.即使用户进程不发出数据库请求,专用服务器也存在,

闪回数据库

Flashbacking a database means going back to a previous database state.闪回数据库到之前数据库的状态 The Flashback Database feature provides a way to quickly revert entire Oracle database to the state it was in at a past point in time. 闪回数据库特性提供了一种快速恢复数据库到过去一个时间点的方法