EF 中获取 TableAttribute的值,即数据库中真实的表名
Posted Avatarx
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了EF 中获取 TableAttribute的值,即数据库中真实的表名相关的知识,希望对你有一定的参考价值。
比如EF中我定义了这样一个实体:
- [Table(Name = "MyTableName")]
- public class MyClass
- {
- }
[Table(Name = "MyTableName")] public class MyClass { }
现我想获取 MyTableName,可以这样来办:
- using System.Data.Linq.Mapping;
- namespace MyEF
- {
- class Program
- {
- static void Main(string[] args)
- {
- string name = typeof(MyClass).GetAttributeValue((TableAttribute ta) => ta.Name);
- Console.WriteLine(name);
- Console.Read();
- }
- }
- public static class AttributeExtensions
- {
- public static TValue GetAttributeValue<TAttribute, TValue>(
- this Type type,
- Func<TAttribute, TValue> valueSelector)
- where TAttribute : Attribute
- {
- var att = type.GetCustomAttributes(
- typeof(TAttribute), true
- ).FirstOrDefault() as TAttribute;
- if (att != null)
- {
- return valueSelector(att);
- }
- return default(TValue);
- }
- }
- [Table(Name = "MyTableName")]
- public class MyClass
- {
- }
- }
以上是关于EF 中获取 TableAttribute的值,即数据库中真实的表名的主要内容,如果未能解决你的问题,请参考以下文章
命名空间“Microsoft.Azure.WebJobs”中不存在类型或命名空间名称“TableAttribute”
Entity Framwork(EF) 7——在Controller内获取指定字段的值
如何获取从 Knex 返回的值(数组中的对象,即数组中的对象)