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