2015-03-18 6 views
0

У меня есть две таблицы, называемые порядком и дорожкой. Можно добавить trackingId таблицы отслеживания в order.trackingId при добавлении данных в эти таблицы.Добавление значения внешнего ключа без отношения внешнего ключа

Вот я сделал до сих пор:

public ABDAO() 
     { 
      _context = new Entities(); 
     } 
public void AddPackageDetail(Order order, Track parcel) 
     { 
      _context.Orders.Add(order); 
      _context.Track.Add(parcel); 
      _context.SaveChanges(); 
     } 

Я попытался сделать это

var newTrackID = parcel.trackingId == order.TrackingId; 
       _context.Order.Add(newTrackingID); //Came up with error 
        _context.SaveChanges(); 

ответ

0

newTrackID является логическое значение (или newTrackingID - догадка вы сделали опечатку здесь), потому что это результат сравнения parcel.trackingId == order.TrackingId

_context.Order.Add(...); здесь вы можете добавить только объект Order. Если я не ошибаюсь, вам не нужно добавлять новый объект Order вообще.

Если order.TrackingId является Int (ссылка для отслеживания объекта) Вы должны просто обновить TrackingId свойства в вашем экземпляре заказа:

order.TrackingId = parcel.trackingId; 
_context.SaveChanges(); 

И если order.TrackingId это Track класса, то вы должны сделать что-то вроде этого:

order.TrackingId.Add(parcel); 
_context.SaveChanges(); 
+0

Это не работает. Это потому, что «parcel.trackingId» - это ПК? –

+0

Да, если «parcel.trackingId» является PK, а 'order.TrackingId' является объектом Track, тогда вы не можете назначить идентификатор для объекта Track. – Bruniasty

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