1

В моей DataLayer у меня есть этот метод «Seed»:Можно ли добавить две таблицы в методе Seed в Entity Framework (сначала код)?

protected override void Seed(Context context) 
     {  
      User u1 = new User() 
      { 

       UserName = "dayan", 
       Password = "dayan", 
       Role = "Admin" 

      }; 
      User u2 = new User() 
      { 
       UserName = "neranjan", 
       Password = "neranjan", 
       Role = "employee" 
      }; 

      context.Users.Add(u1); 
      context.Users.Add(u2); 
      base.Seed(context);  
     } 

Это как мой стол Пользователь выглядит следующим образом:

Так что теперь мне нужно добавить больше данных таблицы в этот метод семян, как это:

  Examination e = new Examination() 
      { 
       Description = "fromda console", 
       CutOffMark = 1000, 
       QuestionID = new List<Question>() 
       { 
        new Question() 
        { 
         QuestionDes = "Question", 
         Answer1 = "11", 
         Answer2 = "22", 
         Answer3 = "33", 
         Answer4 = "44", 
         Correct = 1 
        } 
       } 
      }; 

Цель, мне нужен этот метод для работы, потому что я использую корневую структуру кода, поэтому Мне нужно убедиться, что когда я удаляю базу данных и создаю базу данных, эти строки должны быть написаны в этих столы.

Не могли бы вы дать мне представление о том, как решить эту проблему ... Спасибо!

+0

Почему вы не можете просто положить это в свой метод семени? –

+0

спасибо, я попробую ... – Dayan

ответ

0

это, как я ее решил ....

public class ContextSeeder : DropCreateDatabaseIfModelChanges<Context> 
{ 
    protected override void Seed(Context context) 
    { 
     Examination e1 = new Examination() 
     { 
      Description = "Science", 
      CutOffMark = 10, 
      QuestionID = new List<Question>() 
      { 
       new Question() 
       { 
        QuestionDes = "What is a data bus?", 
        Answer1 = "It carries a word to or from memory", 
        Answer2 = "It is used to store intermediate data and instructions", 
        Answer3 = "It decodes the instructions", 
        Answer4 = "It contains the instruction that is being executed", 
        Correct = 1 
        //ExaminationID = 1 
       } 
      } 
     }; 
     Examination e2 = new Examination() 
     { 
      Description = "Science", 
      CutOffMark = 10, 
      QuestionID = new List<Question>() 
      { 
       new Question() 
       { 
        QuestionDes = "What is program counter?", 
        Answer1 = "It keeps track of the memory address of the instruction that is to be executed next.", 
        Answer2 = "It is used to store intermediate data and instructions", 
        Answer3 = "It decodes the instructions", 
        Answer4 = "It contains the instruction that is being executed", 
        Correct = 1 
        //ExaminationID = 1 
       } 
      } 
     }; 
     Examination e3 = new Examination() 
     { 
      Description = "Science", 
      CutOffMark = 10, 
      QuestionID = new List<Question>() 
      { 
       new Question() 
       { 
        QuestionDes = "Expand SD RAM.?", 
        Answer1 = "Synchronous Dynamic Random Access Memory.", 
        Answer2 = "It is used to store intermediate data and instructions", 
        Answer3 = "It decodes the instructions", 
        Answer4 = "It contains the instruction that is being executed", 
        Correct = 1 
        //ExaminationID = 1 
       } 
      } 
     }; 
     Examination e4 = new Examination() 
     { 
      Description = "Computer Science", 
      CutOffMark = 40, 
      QuestionID = new List<Question>() 
      { 
       new Question() 
       { 
        QuestionDes = "What is Instruction register?", 
        Answer1 = "Stores a copy of current instruction.", 
        Answer2 = "It is used to store intermediate data and instructions", 
        Answer3 = "It decodes the instructions", 
        Answer4 = "It contains the instruction that is being executed", 
        Correct = 1 
        //ExaminationID = 1 
       } 
      } 
     }; 

     User u1 = new User() 
     { 

      UserName = "dayan", 
      Password = "dayan", 
      Role = "Admin" 

     }; 
     User u2 = new User() 
     { 
      UserName = "neranjan", 
      Password = "neranjan", 
      Role = "employee" 
     }; 

     context.Examinations.Add(e1); 
     context.Examinations.Add(e2); 
     context.Examinations.Add(e3); 
     context.Examinations.Add(e4); 
     context.Users.Add(u1); 
     context.Users.Add(u2); 
     //context.SaveChanges(); 
     base.Seed(context); 

    } 
} 

Я работаю с MVC, так что я нашел этот файл под названием «Global.asax» в моей папке MVC и я добавить «SetInitializer» к нему. как это выглядело ...

public class MvcApplication : System.Web.HttpApplication 
    { 
     protected void Application_Start() 
     { 
      AreaRegistration.RegisterAllAreas(); 

      WebApiConfig.Register(GlobalConfiguration.Configuration); 
      FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); 
      RouteConfig.RegisterRoutes(RouteTable.Routes); 
      BundleConfig.RegisterBundles(BundleTable.Bundles); 
      AuthConfig.RegisterAuth(); 
      **Database.SetInitializer(new ContextSeeder());** 
     } 
    } 

Затем я запустил домашнюю страницу. . он автоматически вставляется мои объекты данных в БД ... это как моя домашняя страница выглядит ....

@using (Html.BeginForm("Results", "Exam")) 
{ 
    <table> 
     <tr> 
      <td> 
       @grid.GetHtml(columns: new[]{ 
         grid.Column("ID"), 
         grid.Column("QuestionDes"), 
         grid.Column("Answer1"), 
         grid.Column("Answer2"), 
         grid.Column("Answer3"), 
         grid.Column("Answer4") 
        }) 
      </td> 
      <td> 
       @Html.DropDownList("Answer1", new SelectList(ViewBag.sel, "Value", "Text"), new { @id = "1" })  
       @Html.DropDownList("Answer2", new SelectList(ViewBag.sel, "Value", "Text"), new { @id = "2" }) 
       @Html.DropDownList("Answer3", new SelectList(ViewBag.sel, "Value", "Text"), new { @id = "3" }) 
       @Html.DropDownList("Answer4", new SelectList(ViewBag.sel, "Value", "Text"), new { @id = "4" })    

      </td> 
     </tr> 
    </table>  
    <input type="submit" value="Submit"/> 

} 

Контроллер:

public ActionResult Examination() 
     { 
IService ser = new Service(); 
     //taking all the list questions passed from the LoadQuestions_ToTheGridview() method 
     List<Entities.Question> list = ser.LoadQuestions_ToTheGridview(); 
     ViewBag.qlist = list; 

     List<Models.SelectedListItems> selList = new List<Models.SelectedListItems>(); 
     selList.Add(new Models.SelectedListItems { Text = "----Select----", Value = "0" }); 
     selList.Add(new Models.SelectedListItems { Text = "Answer 1", Value = "1" }); 
     selList.Add(new Models.SelectedListItems { Text = "Answer 2", Value = "2" }); 
     selList.Add(new Models.SelectedListItems { Text = "Answer 3", Value = "3" }); 
     selList.Add(new Models.SelectedListItems { Text = "Answer 4", Value = "4" }); 

     ViewBag.sel = selList; 


     return View(list); 
     } 

спасибо !!!!