Как я могу добавить запись с внешним ключом, используя Entity Framework? - PullRequest
2 голосов
/ 14 декабря 2011

Я пытаюсь добавить записи в свою базу данных с помощью XML-файлов, подобных этому:

<Answers ExamID="1" StudentID="abcd" Date="10/26/2011 11:50:34 AM" Seed="495"
      IsSED="False">
  <Summary>
    <Objective ID="1" MakeUp="False" Quantify="5" Difficulty="Easy"
         Accredited="True" Produced="True">
      <Details Result="0" Date="10/26/2011 11:35:18 AM" />
      <Details Result="1" Date="10/26/2011 11:50:34 AM" />
    </Objective>
    <Objective ID="2" MakeUp="True" Quantify="5" Difficulty="Easy"
         Accredited="False" Produced="True">
      <Details Result="0" Date="10/26/2011 11:35:18 AM" />
      <Details Result="0" Date="10/26/2011 11:50:34 AM" />
    </Objective>
  </Summary>
  <Answer ProblemID="0" ObjectiveID="1" IsCorrect="True" Difficulty="Easy">
    <Result DataType="System.Decimal" Value="9" />
  </Answer>
  <Answer ProblemID="0" ObjectiveID="1" IsCorrect="True" Difficulty="Easy">
    <Result DataType="System.Decimal" Value="20" />
  </Answer>
  <Answer ProblemID="0" ObjectiveID="1" IsCorrect="True" Difficulty="Easy">
    <Result DataType="System.Decimal" Value="16" />
  </Answer>
  <Answer ProblemID="0" ObjectiveID="1" IsCorrect="True" Difficulty="Easy">
    <Result DataType="System.Decimal" Value="36" />
  </Answer>
  <Answer ProblemID="0" ObjectiveID="1" IsCorrect="True" Difficulty="Easy">
    <Result DataType="System.Decimal" Value="18" />
  </Answer>
  <Answer ProblemID="0" ObjectiveID="2" IsCorrect="False" Difficulty="Easy">
    <Result DataType="System.Decimal" Value="Null" />
  </Answer>
  <Answer ProblemID="0" ObjectiveID="2" IsCorrect="False" Difficulty="Easy">
    <Result DataType="System.Decimal" Value="Null" />
  </Answer>
  <Answer ProblemID="0" ObjectiveID="2" IsCorrect="False" Difficulty="Easy">
    <Result DataType="System.Decimal" Value="Null" />
  </Answer>
  <Answer ProblemID="0" ObjectiveID="2" IsCorrect="False" Difficulty="Easy">
    <Result DataType="System.Decimal" Value="Null" />
  </Answer>
  <Answer ProblemID="0" ObjectiveID="2" IsCorrect="False" Difficulty="Easy">
    <Result DataType="System.Decimal" Value="Null" />
  </Answer>
</Answers>

Пожалуйста, проверьте диаграмму. Мне нужно получить некоторые данные для добавления записей в таблицы (сущности) EXAM PRODUCED, EXERCISE и ANSWER.

В EXAM PRODUCED у меня есть поле с именем ExamID hide. Моя основная проблема в том, как я могу сослаться на текущий файл на экзамен?

Как вы думаете, мне нужно создать хранимую процедуру, а SQL SERVER должен это сделать? Или используя Linq to SQL?

Я немного запутался в этой ситуации.

enter image description here

1 Ответ

0 голосов
/ 16 декабря 2011

Вы можете добавить экземпляр ExamProduced в коллекцию ExamsProduced из Exam. DbContext установит ExamId при вставке.

...