Ich habe eine DbSet<DtoProfile>
. Jetzt möchte ich meine Profile filtern.Schwierige Entity Framework Abfrage
My Modell:
public class DtoProfile {
public IList<DtoLookingFor> LookingFor { get; set; } = new List<DtoLookingFor>();
public virtual DtoSearch Search { get; set; }
public Guid? SearchId { get; set; }
}
public class DtoLookingFor
{
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public Guid Id { get; set; }
public LookingFor LookingFor { get; set; }
}
public enum LookingFor
{
A, B, C, D, E
}
public class DtoSearch
{
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public Guid Id { get; set; }
public virtual ICollection<DtoLookingFor> LookingFor { get; set; }
}
Beispiel: Profile1 hat lookingfor A, B, C und die Suche mit lookingfor B, C
Profile2 hat lookingfor B, D
Profil3 hat lookingfor E
Profile1 sollte Holen Sie sich alle Profile, wo LookingFor B oder C ist. (in Beispiel Profile1 und Profile2)
Wie kann ich dies mit IQueryable<DtoProfile>
? Ich habe bereits die DtoSearch widersprochen aus der Datenbank geladen und mit dtoSearch.LookingFor Zugriff auf alle DtoLookingFor
ich eine Lösung hinzugefügt haben, die eine DtoProfile nimmt und die passenden entsprechenden Profile (einschließlich sich selbst - wie man wollte) LMK, wenn es für dich funktioniert oder nicht, was du meintest. –