我有以下的模型并且试图在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; }
}
我尝试了以下两种方法来查找特定的UserSkill
对象(我通过ViewBag
传递UserSkills
的DbSet
):
ViewBag.UserSkills.Find(new { WebSecurity.CurrentUserId, item.SkillId })
ViewBag.UserSkills.Find(new UserSkill(WebSecurity.CurrentUserId, item.SkillId))
但在两种情况下,我都遇到了错误:
传递的主键值的数量必须与实体上定义的主键值的数量相匹配。
我错了什么?在我看来,主键由两个列组成,并且我正在为查找函数提供构成主键的两个值。