2016-06-06 3 views
1

Я пытаюсь выполнить операцию CURD в веб-приложении MVC в webgrid, но проблема в том, что у меня есть несколько таблиц, но я не знаю, как выполнять операцию EDIT с помощью нескольких таблиц ,Как редактировать несколько таблиц в MVC с использованием шаблона ViewModel

стол Счет

public Invoice() 
{ 
    this.LineItems = new HashSet<LineItem>(); 
} 

public int Customer_ID { get; set; } 
public string Customer_name { get; set; } 
public string Customer_Address { get; set; } 
public virtual ICollection<LineItem> LineItems { get; set; } 

Таблица продукта

public Produc() 
{ 
    this.LineItems = new HashSet<LineItem>(); 
} 

public int Product_ID { get; set; } 
public string Product_name { get; set; } 
public int Unit_Price { get; set; } 
public virtual ICollection<LineItem> LineItems { get; set; } 

LineItems Таблица

public partial class LineItem 
{ 
    public int Customer_ID { get; set; } 
    public int LineItems_ID { get; set; } 
    public int Product_ID { get; set; } 
    public int Quantity { get; set; } 
    public int Total { get; set; } 

    public virtual Invoice Invoice { get; set; } 
    public virtual Produc Produc { get; set; } 
} 

ViewModel

public class ViewModel 
{ 
    public string Customer_name { get; set; } 
    public string Customer_Address { get; set; }   
    public int Quantity { get; set; } 
    public int Total { get; set; } 
    public string Product_name { get; set; } 
    public int Unit_Price { get; set; } 
} 

здесь есть класс, который будет выполнять операцию Творожные для меня

public class Class1 
{ 
    SalesOrderEntities entities = new SalesOrderEntities(); 

    public bool SaveStudent(ViewModel viewModel) 
    { 
     try 
     { 
      var Invoice = new Invoice() 
      { 
       Customer_name = viewModel.Customer_name, 
       Customer_Address = viewModel.Customer_Address 
      }; 
      var LineItem = new LineItem() 
      { 
       Quantity = viewModel.Quantity, 
       Total = viewModel.Total 
      }; 
      var Produc = new Produc() 
      { 
       Product_name=viewModel.Product_name, 
       Unit_Price=viewModel.Unit_Price 
      }; 
      return true; 
     } 
     catch 
     { 

      return false; 
     } 

    } 

    public bool UpdateStudent() 
    { 
     try 
     { 

     } 
     catch (Exception) 
     { 

      throw; 
     } 

    } 

Теперь, здесь у меня есть проблемы, я не знаю, как выполнять функции редактирования.

+0

Были ли вы реализованы DBContext? – Saadi

+0

Да, я сделал, но только в таблицах счет-фактуры, Продукты и LineItems, но не в видуModel –

+0

Ok. У вас есть длинный и подробный ответ на ваш вопрос. Это работает для вас? – Saadi

ответ

3

Обновление с использованием Entity Framework может быть довольно простым, поскольку оно поддерживает отслеживание изменений по умолчанию. Отслеживание изменений позволит EF автоматически управлять любыми изменениями, которые происходят с вашими сущностями после их вытаскивания, так что при вызове SaveChanges() эти же изменения будут внесены на уровне базы данных.

Пример Добавление новых Сущности

Поскольку у вас уже есть свой контекст данных, при создании новых объектов, вы просто должны убедиться, что вы добавляете их в контексте должным образом и сохранить изменения после что делается:

// Add each of your new entities to their appropriate table in the context and then save 
// your changes 
entities.Invoices.Add(new Invoice(){ 
    Customer_name = viewModel.Customer_name, 
    Customer_Address = viewModel.Customer_Address 
}); 
entities.LineItems.Add(new LineItem(){ 
    Quantity = viewModel.Quantity, 
    Total = viewModel.Total 
}); 
entities.Producs.Add(new Produc(){ 
    Product_name = viewModel.Product_name, 
    Unit_Price = viewModel.Unit_Price 
}); 
// Now save your changes 
entities.SaveChanges(); 

Пример Обновление существующих объектов

Обновление будет по существу работать САМ но вам нужно иметь доступ к идентификатору, чтобы вы могли запросить существующий объект, внести изменения и сохранить их:

+0

viewModel, StudentID does not work coz view models no no id viewModel class - это всего лишь шаблон для работы с несколькими таблицами, этот класс принимает значение и бросает значение в соответствующие таблицы, но как редактировать несколько таблиц одновременно с тем же Я бы. –

+0

Это был всего лишь пример того, как он может работать. Вы должны были прочитать, какое бы значение вашего идентификатора не было из вашей модели представления, и запрос, используя его из ваших отдельных таблиц, чтобы получить соответствующие сущности для изменения. Затем вы внесете изменения в сущности и вызовите SaveChanges(), чтобы сохранить их в базе данных. –

+0

мой вопрос просто прост, как играть с несколькими таблицами, редактировать и удалять не как сохранить. Проблема заключается в праве здесь var existingStudent = entity.Students.FirstOrDefault (s => s.StudentID == viewModel.StudentID); Я думаю, что нужно использовать соединение, но я не знаю, как присоединиться. Если у вас есть какой-либо другой фрагмент кода или статья, пожалуйста, обратитесь ко мне. –

Смежные вопросы