0

我发现很难找到有关此的任何信息,所以我在 SO 上询问它。

我想用 JayData Entity API 创建一个新的“连接”。一个连接有 2 个设备端口,都与一个设备和一个端口链接。所以:

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

我已经有 2 个 DevicePort(ID:1 和 2)

我想与那些作为发送者和接收者的人创建一个新的连接。所以我这样做:

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

这是有效的,并且一个新的连接被添加到数据库中。但也有新的设备端口、新设备和新端口。似乎它克隆了以前的 DevicePorts 等,但我想要一个新的 Connection,它与我给它作为参数的相同 DevicePorts 相同。

4

1 回答 1

2

我认为缺少以下两行来初始化先前加载的项目的 entitySet:

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

我只是假设您有一个 Port 实体的 EntitySet,请在此处替换您的集合名称。

这能解决问题吗?

于 2013-02-25T10:54:00.063 回答