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
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die Signatur von
Find
Methode istTEntity Find(params Object[] keyValues)
- und Sie können gewinnen die Schlüssel des zusammengesetzten Primärschlüssel in der richtigen Reihenfolge.InformationsquelleAutor der Antwort Hamlet Hakobyan
Finden Sie eine Einheit von composite-Schlüssel verwenden Sie diese überlastung
Msdn
InformationsquelleAutor der Antwort d_z
Spalte Um zahlen sind null-basiert. Änderung auf 0 und 1 statt 1 und 2. also:
InformationsquelleAutor der Antwort Cogitator