2011-11-29 3 views
1

내 데이터를 CSV 형식으로 내보내려면 http://teamcity.codebetter.com/project.html?projectId=project41에서 filehelper 2.9.9를 사용합니다.
[FieldNotInFile]을 사용하여 내보내려는 일부 필드를 무시합니다. 여기

MVC 3 with filehelper

public partial class book 
{ 
    public long id { get; set; } 
    public string book { get; set; } 
    public virtual author author { get; set; } 
} 


[MetadataType(typeof(bookMetadata))] 
[DelimitedRecord(",")] 
public partial class book 
{ 

} 

public class bookMetadata 
{ 
    [Key] 
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)] 
    [FieldNotInFile] //It don't work at all 
    public long id; 

    [DisplayName("Book")] 
    public string book { get; set; } 
    public author author; 



    [FieldNotInFile] //It don't work at all 
    private author _author; 

    public author author 
    { 
     get { return _author; } 
     set { _author = value; } 
    } 
} 

내 문제를 내가 메타 데이터에 [FieldNotInFile] 속성을 적용 할 때, 그것은 전혀 작동하지 않는 것입니다 : 내 데이터베이스가
여기 내 코드가 변경 될 때
또한 편집 모델을 방지하기 위해 MetadataType를 사용 .
데이터베이스에서 생성하고 속성을 적용한 모델에 필드를 캡슐화하면 완벽하게 작동합니다. 그러나 데이터베이스가 변경 될 때마다 수동으로 병합해야합니다.

어떤 도움이 아마 FileHelper의 제한 사항입니다 사전

답변

2

에서
감사를 감사합니다 (그것은 아마 직렬화 된 클래스의 속성을 찾기 위해 반사를 사용하여 메타 데이터 버디 클래스를 인식하지 못합니다).

Model 클래스를 만들어 AutoMapper를 사용하여 데이터를 복사하면 Model 클래스에 특성이 적용됩니다. 생성 된 코드를 수정하면 오류가 발생하기 쉽습니다. IMHO.

+0

제안 사항을 적용하고 있지만 지금까지는 효과가 없습니다. AutoMapper 권한을 사용하지 않았기 때문에 오류가 발생할 수 있습니다 (새로운 것입니다). 하지만 UR 솔루션은 우아하고, 나는이 해결책을 따라갈 것이다 – Dranix

+0

그것은 작동한다 : D. 당신의 솔루션에 너무 감사드립니다. – Dranix