У меня есть две таблицы, таблица автомобилей, которая содержит различные свойства для автомобиля, и carmodeldefinition
, который является внешним ключом для таблицы с тем же именем. Таблица cardefinition
содержит различные автомобили и модели. Я сопоставил их в рамках сущности.
Когда я пытаюсь добавить новую машину в carmodeldefinition
, она просто добавляет новую cardefinition
вместо того, чтобы просто использовать найденную. Код для этого можно найти ниже:
DataLayer.Car car = new DataLayer.Car();
car.URL = carBulk.URL;
car.SellerCity = carBulk.SellerCity.ToString();
car.Color = carBulk.Color.ToString();
car.SellerStreet = carBulk.SellerStreet;
car.SellerName = carBulk.SellerName;
car.SellerCountry = carBulk.SellerCountry.ToString();
if (cdDTO != null && cdDTO.CarDefinitionId > 0)
{
car.CarModelDefinition = cdDTO.Transform(cdDTO);
}
mee.AddToCar(car);
mee.SaveChanges();
cdDTO.Transform(cdDTO)
преобразует datatransferobject
в объект, который может быть сопоставлен с базой данных. Странная вещь в том, что cdDTO.Transform(cdDTO);
возвращает правильный объект с правильным cardefintionId
, но когда он вставлен, он просто вставляется внизу с новым cardefinitionid
(это pk).