Entity Framework 可以将类映射为数据库中的表。
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using System.Linq;
using System.Reflection;
namespace Xbim.IO.PostGre
{
[Table("Entities")]
public class EntityDef
{
[Key]
[Column("Label")]
public Int64 Label { get; set; }
[Column("Type")]
public Int32 Type { get; set; }
[Column("IsNew")]
public bool IsNew { get; set; }
}
class Program
{
static void Main(string[] args)
{
EntityDef table = new EntityDef();
HashSet<string> columName = new HashSet<string>();
Type type = table.GetType();
TableAttribute temp = (TableAttribute)type.GetCustomAttributes(typeof(TableAttribute), false).First();
Console.WriteLine("TableName: " + temp.Name);
PropertyInfo[] Propertys = type.GetProperties();
foreach (var item in Propertys)
{
object[] attributes = item.GetCustomAttributes(false);
foreach (var item1 in attributes)
{
ColumnAttribute colum = item1 as ColumnAttribute;
if (colum != null)
{
columName.Add(colum.Name);
}
}
}
Console.Write("TableColumName: ");
foreach (var item in columName)
{
Console.Write(item + " ");
}
Console.ReadLine();
}
}
}
运行结果