zoukankan      html  css  js  c++  java
  • EF 中获取 TableAttribute的值,即数据库中真实的表名

     

    比如EF中我定义了这样一个实体:

    [csharp] view plain copy
     
    print?
    1. [Table(Name = "MyTableName")]  
    2. public class MyClass  
    3. {  
    4. }  
        [Table(Name = "MyTableName")]
        public class MyClass
        {
        }

    现我想获取 MyTableName,可以这样来办:


     

    [csharp] view plain copy
     
    print?
    1. using System.Data.Linq.Mapping;  
    2.   
    3. namespace MyEF  
    4. {  
    5.     class Program  
    6.     {  
    7.         static void Main(string[] args)  
    8.         {  
    9.             string name = typeof(MyClass).GetAttributeValue((TableAttribute ta) => ta.Name);  
    10.             Console.WriteLine(name);  
    11.   
    12.             Console.Read();  
    13.         }  
    14.     }  
    15.   
    16.     public static class AttributeExtensions  
    17.     {  
    18.         public static TValue GetAttributeValue<TAttribute, TValue>(  
    19.             this Type type,  
    20.             Func<TAttribute, TValue> valueSelector)  
    21.             where TAttribute : Attribute  
    22.         {  
    23.             var att = type.GetCustomAttributes(  
    24.                 typeof(TAttribute), true  
    25.             ).FirstOrDefault() as TAttribute;  
    26.             if (att != null)  
    27.             {  
    28.                 return valueSelector(att);  
    29.             }  
    30.             return default(TValue);  
    31.         }  
    32.     }  
    33.   
    34.     [Table(Name = "MyTableName")]  
    35.     public class MyClass  
    36.     {  
    37.     }  
    38. }  
  • 相关阅读:
    Centos7重置Mysql 8.0.1 root 密码
    MysQL使用一高级应用(下)
    MysQL使用一高级应用(上)
    MysQL使用一查询
    MysQL使用一创建库与表
    OSI七层协议模型、TCP/IP四层模型学习笔记
    python-作用域和装饰器
    python-正则表达式RE
    python-高阶函数和闭包
    python-内置函数及捕获异常
  • 原文地址:https://www.cnblogs.com/lvdongjie/p/5561723.html
Copyright © 2011-2022 走看看