1

私は現在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 はクエリテーブルに外部キーを含めているようですが、これは私が本当に望んでいるものではありません。たぶん、この問題の理解や用語が不足しているので、良いアドバイスへのリンクをいただければ幸いです;)

4

2 に答える 2

1

名前が示すように、ユーザーと質問を持つクラス QuestionUser を持つことができます。次に、ユーザーごとに質問を選択したり、各ユーザーにどのような質問が行われたかを確認したりできます。これにより、2 つのクラス間の明示的な接続を回避できます。

編集:

次に、正しい答えの質問があります。

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 に答える
1

Questionと の間に多対多の関係があるようUserです。

この関係を表現する新しいクラスを作成し、ユーザーの選択を保持してQuestionsからプロパティを削除しますUser

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

エンティティ フレームワーク固有の設定については、「コード ファースト エンティティ フレームワークで多対多の関係を定義する」を参照してください。

于 2013-10-21T12:50:17.000 に答える