Как я могу использовать свободный API с несколькими отражениями для остановки повторения?
пример кода;
public abstract class Entity : IEntity
{
public int Id { get; set; }
}
public class SemiStructuredEntity : Entity
{
public virtual int DocumentId { get; set; }
[ForeignKey("DocumentId")]
public virtual Document Document { get; set; }
}
public class Payment : SemiStructuredEntity
{
public string Code { get; set; }
}
public class Member : SemiStructuredEntity
{
public string FirstName { get; set; }
public string LastName { get; set; }
}
public class Document : Entity
{
public string UniversalId { get; set; }
public string Subject { get; set; }
}
и свободный;
modelBuilder.Entity<Member>()
.HasRequired(a => a.Document)
.WithMany()
.HasForeignKey(u => u.DocumentId);
modelBuilder.Entity<Payment>()
.HasRequired(a => a.Document)
.WithMany()
.HasForeignKey(u => u.DocumentId);
Когда нам нужен еще один класс, унаследованный базовым классом SemiStructuredEntity, мы должны определить для него другой свободный.
Моя мечта - это;(мой вопрос прокомментировал строки в блоке кода)
List<Type> targetTypes = getSemiStructuredEntities();
///
///and now How? How can i define fluent for all of targetTypes in second statements?
///
или
List<Type> targetTypes = getSemiStructuredEntities();
foreach (Type item in targetTypes)
{
///
///And now How? How can i define fluent for this type
///
}
Заранее спасибо.