Posso ocultar meus campos ICollection <T> quando tenho um mapeamento um para muitos no código EF4 somente?
Minhas classes de domínio que possuem mapeamentos um para muitos geralmente assumem o seguinte formato (código não testado):
public Customer Customer
{
// Public methods.
public Order AddOrder(Order order)
{
_orders.Add(order);
}
public Order GetOrder(long id)
{
return _orders.Where(x => x.Id).Single();
}
// etc.
// Private fields.
private ICollection<Order> _orders = new List<Order>();
}
oAmostras somente de código EF4 Vi expor uma coleção pública de IC ao lidar com relacionamentos um-para-muitos.
Existe uma maneira de persistir e restaurar minhas coleções expondo-as? Caso contrário, parece que meus objetos de domínio serão projetados para atender aos requisitos do ORM, o que parece contrariar o espírito do empreendimento. Expor uma ICollection (com os métodos Add, etc.) não parece particularmente limpo e não seria minha abordagem padrão.
Atualizar
Encontradoesta postagem isso sugere que não era possível em maio. Claro, o pôster da Microsoft disse que eles estavam "considerando fortemente implementá-lo" (eu espero que sim) e estamos meio ano depois, então talvez tenha havido algum progresso?