Finden eines Elements in einem DbSet mit einem zusammengesetzten Primärschlüssel

Habe ich Folgendes Modell und bin auf der Suche nach einem bestimmten Objekt in einer DbSet:

public class UserSkill
{
    [Key, Column(Order = 1)]
    public int UserId { get; set; }

    [Key, Column(Order = 2)]
    [ForeignKey("Skill")]
    public int SkillId { get; set; }

    public virtual Skill Skill { get; set; }
}

Ich habe versucht, die folgenden zwei Möglichkeiten der Suche nach einem bestimmten UserSkill Objekt (ich bin vorbei an der DbSet von UserSkills über die ViewBag):

ViewBag.UserSkills.Find(new { WebSecurity.CurrentUserId, item.SkillId })
ViewBag.UserSkills.Find(new UserSkill(WebSecurity.CurrentUserId, item.SkillId))

Aber in beiden Fällen bekomme ich eine Fehlermeldung:

Die Anzahl der Primärschlüssel übergebenen Werte müssen übereinstimmen, Anzahl der Primärschlüssel-Werte definiert, die sich auf die Entität.

Was bin ich? Es scheint mir, dass der Primärschlüssel besteht aus zwei Spalten, und ich bin die Bereitstellung der finden-Funktion, mit der zwei Werte, aus denen sich der Primärschlüssel.

InformationsquelleAutor der Frage jrsowles | 2014-04-26

Schreibe einen Kommentar