我目前正在使用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中包含了一个外键,这实际上并不是我想要的。 也许我缺乏这个问题的理解和/或术语,所以我希望得到一个良好建议的链接;)
答案 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)
您似乎在Question
和User
之间存在多对多关系。
创建一个新类来表达此关系,并保留用户选择并从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