1

我正在爲POCO對象創建元數據類。我將「CSVColumn」(從LINQToCSV)屬性添加到元數據類。但是當我運行這個程序時,它找不到它的屬性。實體框架的元數據類POCO

所以我測試了使用反射,

Type t = typeof(Case); 
PropertyInfo pi = t.GetProperty("ProviderId"); 
//bool isReadOnly = ReadOnlyAttribute.IsDefined(pi,typeof(ReadOnlyAttribute); 
var attributes = pi.GetCustomAttributes(typeof(Case),true); 

它實際上可以通過調用 「GetCustomAttributes」 返回任何結果。

我做了什麼錯?

下面是我創建元數據類的方式。

我不明白的一件事是,它與MVC驗證完美兼容。想知道如何檢索自定義屬性?

這是POCO的EntityFramework對象

public partial class Case 
{ 
public string ProviderName { get; set; }   
public string ProviderId { get; set; } 
} 

在這裏,我創建一個部分類案件和元數據類,

[MetadataType(typeof(CaseMetaData))] 
public partial class Case 
{ 
    public class CaseMetaData 
    { 

     [CsvColumn(Name = "ProviderName", FieldIndex = 1)] 
     public string ProviderName { get; set; } 

     [CsvColumn(Name = "ProviderID", FieldIndex = 2)] 
     public string ProviderId { get; set; } 

    } 

} 

請有人能幫助我,非常感謝。

Cheers

回答

2

typeof(Case)不是屬性類型。
您的意思是typeof(CsvColumnAttribute)

此外,標準反射不知道元數據類。
您需要使用AssociatedMetadataTypeTypeDescriptionProvider

一個很好的例子可以發現here

+0

對不起,這是一個錯字。感謝您的及時答覆,我會查找它。乾杯 – superwalnut 2012-03-13 06:43:10