Предположим следующую схему
class Person{
public int Id {get;set;}
public virtual ICollection<Province> Provinces {get;set;}
}
class Province{
public int Id {get;set;}
public virtual ICollection<Person> Residents {get;set;}
}
Могу ли я в любом случае скрыть или не определить свойство Residents? Это не имеет смысла в контексте приложения, и мне кажется, что я делаю уступку в DTO, чтобы соответствовать схеме Code First. то есть я не хочу иметь возможность получать людей из провинции. В обычном EF с DBML я мог бы удалить свойство навигации, чтобы добиться этого.
Я просмотрел документацию по fluentAPI и не могу найти ничего, что могло бы охватить ситуацию.
В идеальном мире я должен сопоставить DTO Entity POCO с классом домена, но мне просто лень и я вижу, можно ли этого избежать.
[править]
Мне удалось решить с этим, но EF, что вы сделали с моим бедным poco !!
class Province{
public int Id {get;set;}
protected virtual ICollection<Person> Residents {get;set;}
internal class ProvinceMapping : EntityConfiguration<Province>
{
public ProvinceMapping()
{
HasMany(p => p.Residents);
}
}
Тогда в контексте
protect void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Configuration.Add(new Province.ProvinceMapping());
}