2009-08-28 3 views
1

DataContext에서 열의 특성을 반환하려고합니다.Linq.Table <TEntity>에서 ColumnAttributes를 얻으려면 어떻게해야합니까?

어떻게 ColumnAttribute 메타 데이터를 가져올 수 있습니까?

public class MyDataContext : DataContext 
{ 
    public Table<User> User; 
    public MyDataContext(string connection) : base(connection) { } 
} 

[Table(Name = "User")] 
public class User 
{ 
    [Column(IsPrimaryKey = true)] 
    public long ID; 
    [Column] 
    public string FirstName; 
    [Column(CanBeNull=false)] 
    public string LastName; 

    int VersionNumber = 1000; 
} 

어떻게 사용자 개체 또는 컬럼에 대한 메타 데이터 (IsPrimaryKey, CanBeNull 등)을 얻을 수 Table<User> 개체에 액세스 할 수 있습니까?

미리 감사드립니다. 아직 학습 중입니다 ...

답변

4
var context = new MyDataContext(); 
MetaTable userMeta = context.Mapping.GetTable(typeof(User)); 
var dataMembers = userMeta.RowType.PersistentDataMembers; 

거기에서 모든 종류의 것들을 얻을 수 있습니다.

+1

foreach (dataMembers의 MetaDataMember 멤버) { bool canBeNull = member.CanBeNull; } 도움 주셔서 감사합니다. 방금 방법을 사용하여 CanBeNull에 액세스하는 방법을 보여 드리고 싶습니다. – Jeremiah

관련 문제