2012-02-09 2 views
1

그래서 속성이있는 제품으로 가득 찬 데이터베이스가 있고 그 속성에는 값이 있습니다. 이 뷰 모델로 사용할 수있는 C# 개체로 다시 만들 수 있어야합니다.유효성 검사를 사용하는 동적 뷰 모델

그래서 기본적으로 나는이에 데이터베이스에 내가 무엇을 회전 할 수 있어야합니다 :

public class Product 
{ 
    public object Attribute { get; set; } 
} 

나는 이것에 대한 반사 또는 식 트리를 사용해야 할 것 같은데요,하지만 난 아니에요 확실한. 또한 각 속성에 대한 유효성 검사도 포함시켜야합니다. 나는 Clay이라는 프레임 워크를 사용하여이 작업을 수행 할 생각 이었지만 유효성을 확인하고 컨트롤러에 다시이 뷰 모델을 POST 할 수 있는지 여부를 알 수 없었습니다.

아이디어가 있으십니까?

EDIT : 답변을 주셔서 감사합니다.하지만 제가 잘못해서 무엇을 찾고 있었는지 분명히 밝혀야합니다. DynamicObject를 사용하여 데이터베이스에있는 데이터에서 개체를 만들려고합니다. 동적 객체를 사용하여 런타임시 DataAnnotations를 만드는 방법을 모르겠습니다.

+1

[Entity Framework?] (http://msdn.microsoft.com/en-us/library/bb399572(v=vs.110) .aspx) – LiquidPony

답변

0

MVC3을 사용하는 경우 일반적인 방법은 Entity Framework와 눈에 거슬리는 Javascript/DataAnnotations를 사용하여 유효성을 검사하는 것입니다.

Validation 튜토리얼

MVC3 + EF4 튜토리얼

1

라이언,

는 LiquidPony의 의견에 따라, 나는 혼합으로 엔티티 프레임 워크를 당겨 것입니다. EF를 사용하기 위해서는 Database first, Model-First 또는 Code-First라는 다양한 진입 점이 필요합니다. 귀하의 목적을 위해 데이터베이스가 가장 적합 할 것입니다. 기본적으로, db 연결에서 edmx 디자이너 캔버스를 가리킨 다음 원하는 테이블을 표면으로 드래그합니다. 그런 다음 linq를 사용하여 서비스 계층/컨트롤러와 함께 소비 될 수있는 필요한 엔티티 클래스를 만듭니다.

여기있는 모든 아름다움은 모든 외래 키 관계를 적절히 나타내며 자녀 컬렉션 등에 비교적 쉽게 액세스 할 수 있다는 것입니다.

EF 이전에는 실제로 T4 템플릿과 리플렉션을 사용하여 db 매핑 클래스를 출력했는데 '성공'이었습니다. db가 변경되면 새로운 특성을 추가해야한다는 점을 기억해야했습니다. 변경 등. EF를 사용하면 '새로 고침'을 누르기 만하면됩니다. 자,이 프로젝트가 그린 필드 프로젝트 였을 때, 당신은 한 걸음 더 나아질 수 있었고 EF Code-First를 사용할 수있었습니다. 이를 통해 도메인 모델을 수동으로 생성하고 모델 요구 사항을 기반으로 db를 생성 할 수 있습니다. 이는 대형 시스템의 일부로 설계된 자체 내장 구성 요소를 만드는 영역에서 진정한 이점을 제공합니다.

은 참조 :

Code-first vs Model/Database-first

과 :

http://blogs.msdn.com/b/adonet/archive/2011/03/15/ef-4-1-model-amp-database-first-walkthrough.aspx

을 각 방법의 좋은 요약합니다.

희망 사항은 약간의 통찰력을 제공합니다.

관련 문제