2016-08-25 2 views
1

CLR 유형의 기본 인터페이스가 특정 인터페이스를 구현하는 엔티티의 속성을 변경할 수 있도록 ModelBuilder/Fluent API를 이해하려고합니다. 내가 CLRType을 기본 상관 없음 엔티티를 찾으려면 OnModelCreating 동안Poco Interface partcipation을 기반으로하는 ModelBuilder

public interface IVersionedEntity 
{ 
    DateTime ValidFrom { get; set; } 
    DateTime ValidTo { get; set; } 
} 

이 인터페이스를 구현하고 ValueGeneratedOnAddOrUpdate가되도록 ValidFrom 및 ValidTo 특성을 변화 :

같은 인터페이스를 감안할 때.

기본적으로 ModelBuilder에서 "IsAssignableFrom"유형 테스트를 수행 할 적절한 장소를 찾고 있습니다.

감사합니다.

var versionedEntityTypes = modelBuilder.Model.GetEntityTypes() 
    .Where(type => typeof(IVersionedEntity).IsAssignableFrom(type.ClrType)); 

foreach (var type in versionedEntityTypes) 
{ 
    type.FindProperty("ValidFrom").ValueGenerated = ValueGenerated.OnAddOrUpdate; 
    type.FindProperty("ValidTo").ValueGenerated = ValueGenerated.OnAddOrUpdate; 
} 

답변

0

는 출발점이 될 것입니다. 내가 실제로 원하는대로 "ClrType"을 본 적이 없다.
+0

완벽한, 감사 : 여기 – Frank