2013-02-25 1 views
0

Мне очень сложно найти информацию об этом, поэтому я спрашиваю об этом на SO.JayData создает объект, который не работает должным образом

Я хочу создать новое «соединение» с API-интерфейсом JayData Entity. Соединение имеет 2 DevicePorts, оба связаны с устройством и портом. Итак:

Connection(Sender: DevicePort(Device, Port), Receiver: DevicePort(Device, Port)) 

У меня уже есть 2 DevicePorts (ID: 1 и 2)

Я хочу, чтобы создать новое соединение с тем, как отправитель и получатель. Таким образом, я делаю это:

var devPort1 = previouslyFetchedDevicePortEntity1; 
var devPort2 = previouslyFetchedDevicePortEntity2; 
var con = DataLayer.context.ConnectionSet.add({ Sender: devPort1, Receiver: devPort2 }); 
DataLayer.context.saveChanges(); 

Это работающее и новое соединение добавляется в базу данных. Но есть также новые DevicePorts, новые устройства и новые порты. Похоже, что он клонирует предыдущие DevicePorts и т. Д., Но я хочу новое соединение с теми же DevicePorts, которые я дал ему как параметр.

ответ

2

Я думаю, что следующие 2 строки отсутствуют, чтобы инициализировать EntitySet из ранее загруженных пунктов:

DataLayer.context.Ports.attach(devPort1); 
DataLayer.context.Ports.attach(devPort2); 

Я просто предположим, что у вас есть EntitySet для лица порта, подставьте имя вашего набора здесь.

Решает проблему?

+0

Привет! Это работает. Теперь необходимо подключить devPorts, а также устройства и порты devPorts. Пример: DataLayer.context.DevicePortSet.attach (отправитель); DataLayer.context.DevicePortSet.attach (приемник); DataLayer.context.DeviceSet.attach (sender.Device); DataLayer.context.DeviceSet.attach (receiver.Device); DataLayer.context.PortSet.attach (sender.Port); DataLayer.context.PortSet.attach (receiver.Port); ' Может ли это быть более эффективным/чистым? – HansElsen

+0

nevermind Я видел, что я включил порты и устройства, когда я набрал devPorts. Таким образом, я должен был прикрепить их, когда использовал их в новом соединении. – HansElsen