EF6.0 사용자 정의 Code First 규약
5853 단어 first
Lightweight Conventions:
이것은 DbContext의 OnModelCreating 방법을 직접 다시 써서 약속을 실현할 수 있는 경량급 약속이다. 다음과 같다.
public class BaseDbContext : DbContext
{
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Types().Configure(f => f.ToTable("cms_" + f.ClrType));
//
}
}
Lightweight Conventions는 가장 간단한 실현 방식으로 대부분의 전역 설정 수요를 이런 방식으로 실현할 수 있다.
Configuration Conventions:
Conventions를 사용자 정의하려면 Convention을 계승하고 DbContext의 OnModelCreating 방법을 다시 쓰고 Convention을 추가하면 됩니다.
1 public class StringMaxLengthConvertion : Convention
2 {
3 /// <summary>
4 ///
5 /// </summary>
6 public StringMaxLengthConvertion()
7 {
8 this.Properties().Having(p=>(ColumnLengthAttribute)p.GetCustomAttributes(typeof(ColumnLengthAttribute),true).FirstOrDefault()).Configure((c,a)=>c.HasColumnName(a.ColumnName).HasMaxLength(a.ColumnMaxLength));
9 }
10 }
11
12 public class TestDbContext : DbContext
13 {
14 protected override void OnModelCreating(DbModelBuilder modelBuilder)
15 {
16 modelBuilder.Conventions.Add<StringLengthAttributeConvention>();
17 }
18 }
Configuration Conventions는 구현이 상대적으로 번거롭지만 자유도가 높습니다.
IConfigurationConvention 인터페이스에는 TMemberInfo와 Tconfiguration 두 가지 유형의 매개 변수가 있습니다.그것들은 당신이 약속하고 싶은 모델 요소를 필터하는 데 사용됩니다.
첫 번째 유형 매개변수인 TMemberInfo는 두 개의 값을 가질 수 있습니다.
두 번째 유형의 매개 변수는 Tconfiguration입니다. 임의의 매개 변수일 수 있습니다.
Type 및 PropertyConfiguration (하위 클래스 포함)은 혼용할 수 없으며 그렇지 않으면 Configuration Conventions가 적용되지 않습니다.
사용자 지정 Data Annotation 추가
Custom Code First Conventions 를 사용하면 Data Annotation 을 확장할 수 있습니다.예를 들어 Email Attribute 특성을 추가한 다음에Lightweight Conventions나Configuration Conventions에서 속성이 Email Attribute 특성을 적용했는지 판단한다.만약 그렇다면, 열 이름은 'Email' 이고, 열 형식은 'nvarchar (255)' 로 비추어 [Column ('Email')] 과 [maxLength (255)] 가 공통적으로 작용하는 효과를 얻는다.
자세한 내용은 를 참조하십시오.http://msdn.microsoft.com/en-us/data/jj819164.aspx
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Garbage First (G1) 소개G1 이 실행 하 는 첫 번 째 단 계 는 초기 태그 (Initial Marking) 이 며, 이 단 계 는 STW (Stop the World) 이 며, 모든 mutator threads 가 정지 되 어 GC Ro...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.