2009-08-28 6 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

関連する問題