Zasadniczo chcę użyć miękkich operacji usuwania, ale właściwości navgiation nie pokazują miękkich usuniętych rekordów. Czy są jakieś sposoby przechwytywania zapytań o właściwości nawigacyjne obiektów POCO w strukturze encji?Miękkie operacje usuwania, właściwości nawigacji w EF4 CTP5 POCO
Bardzo prosty przykład:
public class Product
{
public int Id { get; set;}
public string Name { get; set;}
public int? CategoryId { get; set;}
public virtual Category Category { get; set;}
public bool IsDeleted { get; set;}
}
public class Category
{
public int Id{ get; set; }
public string Name { get; set; }
public virtual ICollection<Product> Products { get; set;}
}
mogę łatwo wstawić kryteria do mojego repozytorium tak, że nie zwraca żadnych produktów gdzie IsDeleted == true.
Jednak nie widzę, jak to osiągnąć w przypadku innych obiektów, które mają "miękkie usunięte" obiekty w ich właściwościach nawigacyjnych.
IE Gdybym dostęp myCategory.Products (gdzie myCategory jest kategoria) nie powinny wykazywać żadnych produktów gdzie IsDeleted == true
mógłbym potencjalnie obejść to za pomocą dodatkowego własność Kategoria
public ICollection<Product> CurrentProducts
{
get
{
return this.Products.Where(p=>!p.IsDeleted);
}
}
Ale to nie jest eleganckie rozwiązanie, którego szukam. Czy istnieje sposób, aby "dołączyć" kryteria do właściwości nawigacji lub lepsze rozwiązania, jak sobie z tym poradzić?
Ahh teraz widzę twój problem ... :) – gingerbreadboy
Powiedziałbym, że proponowane przez ciebie rozwiązanie jest najlepsze. Nie wiesz, dlaczego nie uważasz, że jest elegancka? Wydaje mi się całkiem czysty i prosty dla mnie. –
Czy znalazłeś sposób, aby do tego podejść? Opieram się na tym samym scenariuszu i chciałbym wiedzieć, jakie podejście podjąłeś. – muruge