• 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. }  
  • 相关阅读:
    Mybatis学习01:利用mybatis查询数据库
    SpringBoot_登录注册
    python抓取中科院大学招聘
    centos7设置固定IP
    PIL给图片加水印
    You can ignore those files in your build.gradle
    mysql事件执行时间
    wampserver2.5域名解析错误问题
    Mysql错误消息 语言设置
    js控制select多选
  • 原文地址:https://www.cnblogs.com/lvdongjie/p/5561723.html
Copyright © 2020-2023  润新知