ich ein "Produkt" Tabelle haben die "Tegs"LINQ - Abfrage-Tabelle mit verwandten Daten
public class Product
{
public Product()
{
Tegs = new List<Teg>();
}
[Key]
public int Id { get; set; }
public string ProductName { get; set; }
public virtual ICollection<Teg> Tegs { get; set; }
public virtual ICollection<Product> RelatedProducts { get; set; }
}
Dies ist die Tegs bezogen hat:
public class Teg
{
public Teg()
{
}
public int Id { get; set; }
public string TegName { get; set; }
public virtual ICollection<Product> Products { get; set; }
}
}
Bei einem Produkt ID, LINQ verwenden Ich möchte alle Produkte abrufen, die mindestens ein teg als ausgewähltes Produkt haben.
Ich verwende diesen Code:
Product product = db.Product.Include(u => u.Tegs).Where(u => u.Id == id).Single();
List<int> tegid = product.Tegs.Select(c => c.Id).ToList();
IEnumerable<Product> relatedProducts = db.Product.Include(u => u.Tegs).Where(p => p.Tegs.Any(t => tegid.Contains(t.Id)));
Frage 1: Wie kann ich von dem relatedProducts das Produkt mit der ID ausschließen?
Frage 2: Wie kann meine Liste innerhalb der Linq-Abfrage für die verwandten Produkte verschachteln?