每个用户的不同实体?

时间:2013-10-21 12:18:36

标签: c# entity-framework

我目前正在使用Entity Framework,目前我无法理解如何执行此操作: 我有一个叫做问题的课,就像这样:

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似乎在Queystion Table中包含了一个外键,这实际上并不是我想要的。 也许我缺乏这个问题的理解和/或术语,所以我希望得到一个良好建议的链接;)

2 个答案:

答案 0 :(得分: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; }
}

使用这个模型,你会想到我想要的东西。

答案 1 :(得分:1)

您似乎在QuestionUser之间存在多对多关系。

创建一个新类来表达此关系,并保留用户选择并从Questions中删除User属性。

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

对于特定于实体框架的设置,请参阅:Defining many to many relation in code first entity framework