Обновление данных в базе данных Entity Framework - PullRequest
0 голосов
/ 09 октября 2018

У меня есть один вопрос к моей программе.Я пишу консольное приложение на C # с использованием Entity Framework.Эта программа имеет две таблицы в отношениях один-ко-многим.Первая таблица называется «Автомобиль», а вторая - «DescriptionCar».Я предполагаю, что у меня есть данные в базе данных, и я хочу добавить описание к конкретному автомобилю, используя его идентификатор.

На данный момент у меня есть что-то вроде этого:

using (var context = new ContextClass())
{
    Car car = context.Cars.Single(a => a.CarId == id);
    DescriptionCar descriptionCar = new DescriptionCar();
}

ВВначале я загружаю данные конкретного автомобиля, создаю новый объект, чтобы добавить описание, и теперь я не знаю, как заполнить данные.

Классы моделей:

public class Car
{
    public int CarId { get; set; }
    public string Brand { get; set; }
    public string Model { get; set; }
    public string Fuel { get; set; }
    public int ProductionYear { get; set; }
    public string Color { get; set; }
    public int PowerEngine { get; set; }

    public virtual ICollection<DescriptionCar> DescriptionCars { get; set; }
}

public class DescriptionCar
{
    public int DescriptionCarId { get; set; }
    public string Description { get; set; }

    public Car Car { get; set; }
}

Спасибо за помощь.

Ответы [ 2 ]

0 голосов
/ 09 октября 2018

Я не уверен, что вы зациклены на части EF или работаете с ICollection.Это должно работать:

//Your existing code
Car car = context.Cars.Single(a => a.CarId == id);
DescriptionCar descriptionCar = new DescriptionCar();

//Code to save a new description to your ICollection
List<DescriptionCar> descriptions = new List<DescriptionCar>(); //List to work with

if (car.DescriptionCars!= null) 
{
  descriptions = (List<DescriptionCar>)car.DescriptionCars; //Load existing ICollection into our List
}

descriptions.Add(descriptionCar); //Add the new description
car.DescriptionCars = descriptions; //Store the working list into the EF object
context.Save(); //Save to the database
0 голосов
/ 09 октября 2018

Есть несколько способов сделать это.Самым простым будет следующее:

using (var context = new ContextClass())
{
    DescriptionCar descriptionCar = context.DescriptionCars.Single(a => a.CarId == id);
    descriptionCar.Description = "Your description";
    context.SaveChanges();
}

Я могу помочь вам, если вы поделитесь своими классами сущностей.

...