데이터베이스에서 모델에 대한 데이터 주석을 직접 가져올 수있는 방법이 있습니까? 데이터와 테이블이 많은 데이터베이스가 있으므로 데이터베이스에서 엔티티 프레임 워크로 모델을 생성하므로 클래스를 얻을 수 있지만 엔티티 프레임 워크 또는 다른 일부 orm이 데이터베이스에서 적합성 및 제약 사항을 직접 가져올 수 있는지 알고 싶습니다. [필수] 또는 [데이터 유형 (datatype.emailadress)]과 같은 데이터 표기로 클래스에 포함됩니다.asp.net mvc의 모델 데이터 표기
0
A
답변
1
예.
public class LocalizedModelMetadataProvider : DataAnnotationsModelMetadataProvider
{
protected override ModelMetadata CreateMetadata(IEnumerable<Attribute> attributes, Type containerType,
Func<object> modelAccessor, Type modelType, string propertyName)
{
var metadata = base.CreateMetadata(attributes, containerType, modelAccessor, modelType, propertyName);
if (containerType == null || propertyName == null)
return metadata;
// Load all metadata from your database here.
return metadata;
}
}
내가 거의 다 당신이 모델과 검증 메시지 모두에 대한 모든 현지화 (제로 코드)를 처리 할 수있는 관리 영역을 가지고 있습니다 Griffin.MvcContrib라는 프로젝트를 만드는거야 : 당신은 ModelMetadataProvider 클래스를 상속 할 수 있습니다. 데이터베이스에 대한 지원을 얻기 위해 당신은 단지 다음과 같은 인터페이스를 구현할 수를 사용하여
:
// the actual code file has detailed explanations of each method.
public interface ILocalizedStringProvider
{
string GetModelString(Type model, string propertyName);
string GetModelString(Type model, string propertyName, string metadataName);
string GetValidationString(Type attributeType);
string GetEnumString(Type enumType, string name);
}
업데이트
는 어디 중요하지 않습니다. 그리고 모델에 DataAnnotation 특성 ([Display]
특성)을 사용할 필요가 없습니다. 방금 속성을 사용할 수 있도록 DataAnnotationsModelMetadataProvider
을 상속합니다.
- 어디서나 클래스를 생성하십시오. 데이터베이스
- 구성 MVC에서 읽기
- 은 Global.asax에 그것을 사용하는
예 : 나는, 내 솔루션에 별도의 프로젝트에 내 모델 클래스를 생성
ModelMetadataProviders.Current = new YourModelMetadataProvider();
관련 문제
- 1. ASP.NET MVC의 장고 형 데이터 모델
- 2. ASP.NET MVC의 모델 설계 조언
- 3. MVC의 모델
- 4. LINQ2SQL을 사용하여 ASP.NET MVC의 다양한 모델 리포지토리에서 데이터 컨텍스트 공유
- 5. ASP.NET MVC의 데이터 캐싱 상점
- 6. asp.net-mvc의 Reportviewer 데이터 소스
- 7. Asp.net MVC의 데이터 전송 개체
- 8. ASP.NET MVC의 모델 바인딩 중첩 컬렉션
- 9. ASP.NET MVC의 동적 데이터 유효성 확인
- 10. Asp.net MVC의 기존 개체에 데이터 바인딩
- 11. ASP.NET MVC의 인터페이스 인수
- 12. MVC의 모델 부분 구현
- 13. 중첩 된 하위 모델 및 ASP.NET MVC의 PartialView와의 모델 바인딩
- 14. ASP.NET MVC의 ACL
- 15. asp.net MVC 데이터 모델 도움말
- 16. ASP.NET MVC의 dateTime 객체
- 17. MVC의 데이터 유효성 검사
- 18. MVC의 ORM 모델 이해
- 19. Spring MVC의 글로벌 모델
- 20. asp.net MVC의 asp.net 컨트롤
- 21. ASP.NET MVC의 동적 보안
- 22. asp.net mvc의 Viewmodel 보안
- 23. MVC의 하이퍼archical 데이터
- 24. ASP.NET MVC의 데이터 서비스 리플렉션 공급자
- 25. ASP.NET MVC의 필드 그룹화
- 26. ASP.NET MVC의 모범 사례
- 27. asp.net MVC의 JQuery와 그리드
- 28. 데이터 액세스를위한 ASP.NET 공급자 모델
- 29. ASP.Net MVC의 기본 파일 구조
- 30. Linq2Sql 모델이 아닌 ASP.NET MVC의 바인딩 예제
내 모델 폴더에 너무 mvc 솔루션에서 나는 새로운 클래스를 추가하고 생성 된 클래스에서 코드를 복사하고 나는 수동 데이터 anotations을 추가합니다. modelmetadataProvider 클래스를 상속해야하는 곳을 구체적으로 지정할 수 있습니까? – GoranB
내 업데이트를 읽으십시오. – jgauffin
2 단계) 데이터베이스에서 읽기 및 3) 내가 혼란스러워서 이런 식으로 한 적이 없으므로 ModelMetaDataProvide 클래스를 만들어야합니까? – GoranB