2009-03-28 2 views
0

У меня есть два стола, автомобильный стол, который содержит различные свойства для автомобиля, и carmodeldefinition, который является внешним ключом к одноименному столу. В таблице cardefinition представлены различные автомобили и модели. Я сопоставил их в структуре сущности.Структура сущности и внешние ключи

image

Когда я пытаюсь добавить новый автомобиль в 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).

+0

Вместо того, чтобы проходить через мой бизнес-уровень, я попытался выполнить данные в datalayer.Then, я просто получил сообщение об ошибке. Связь добавляется или удаляется из AssociationSet 'FK_Car_CarModelDefinition'. С ограничениями мощности необходимо также добавить или удалить соответствующее «CarModelDefinition». – 2009-03-28 16:59:07

ответ

1

Я нашел ответ. Как я был до этого, я установил отношение к 1-1 вместо 1-много.

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