数据库特性
2016-04-24 23:09
316 查看
/// <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;
}
}
/// 数据库表名
/// </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;
}
}
相关文章推荐
- mysql 主从
- mysql-proxy配置
- 数据库基本操作
- Oracle 判断值是否为数字的函数
- 如何启动/停止/重启MySQL
- MYSQL中取当前年份的第一天和当前周,月,季度的第一天/最后一天
- sybase15 迁移数据库时遇到的问题
- Redis源码分析——SDS
- 项目与数据库有关的三种角色
- Redis源码解析(1)
- MySql――外键约束
- Redis之1-基本目录
- mysql-5.6.17-win32免安装版配置
- 批量 kill mysql 中运行时间长的sql
- MYSQL 的 AB 复制(主从,双机热备)
- Hibernate 操作数据库
- MySql乱码解决
- Oracle 常用命令
- SQLMap使用
- mysql 相关问题解决