1

我目前正在使用实体框架,目前我无法理解如何执行此操作:我有一个名为 question 的类,如下所示:

public class Question
{
 public int QuestionID { get; set; }
 public string Name { get; set; }
 public int? Value { get; set; }
}

每个用户看起来像这样:

public class User
{
 public int UserID { get; set; }
 public string Name { get; set; }
 public virtual ICollection<Question> Questions { get; set; }
}

每个用户都可以(并且将)回答未知数量的问题,但是我怎样才能为每个用户分开答案?目前,EF 似乎在查询表中包含了一个外键,这并不是我真正想要的。也许我缺乏对这个问题的理解和/或术语,所以我希望能提供一个好的建议链接;)

4

2 回答 2

1

It looks like your have a many-to-many relationship between Question and User.

Create a new class to express this relationship and hold the user selection and remove the Questions property from the User.

public class UserQuestionAnswer
{
    public int QuestionID { get; set; }
    public int UserID { get; set; }
    public int? Value { get; set; }
}

For entity framework specific setup see: Defining many to many relation in code first entity framework

于 2013-10-21T12:50:17.000 回答
1

顾名思义,您可以拥有一个包含用户和问题的 QuestionUser 类。然后您可以按用户选择问题或查看向每个用户提出的问题等。这样可以避免两个类之间的明确联系。

编辑:

那么你有正确答案的问题:

public class Question
{
 public int QuestionID { get; set; }
 public string Name { get; set; }
 public int? Value { get; set; }
 public string CorrectAnswer { get; set; }
}

用户:

public class User
{
 public int UserID { get; set; }
 public string Name { get; set; }
}

建立链接并让用户回答的 userQuestion 类:

public class UserQuestion
{
 public User User { get; set; }
 public Question Question { get; set; }
 public string userAnswer { get; set; }
}

有了这个模型,你会得到你想要的,我想。

于 2013-10-21T12:21:38.170 回答