0

我想知道是否有任何方法可以使用 EF4 实现这样的目标:

我想做类似的事情:

1. |   'Get Parent
2. |   Dim Parent as oParent = mContext.GetParent(parentId) 
3. | 
4. |   'Link a child without loading it entirely, only using his ID
5. |   oParent.Children.AddOnlyUsingChildId(aChildId) 'Or maybe EntityKey?
6. |
8. |   'Apply Changes (Save)
7. |   mContext.SaveChanges()

这一切都是因为,我不想每次都向服务器发出请求以获取整个子实体,而且无论如何,我只有孩子的 ID(来自复选框列表)。这是一个循环的一部分,在一个循环中,可能必须为每个第一级循环加载数百个子级。在我看来,这样做是可能的,因为实体图应该知道,当需要保存父级和N..N关系时,他应该只在子级和子级之间的 DB 映射表中插入“Parrent.nId 和 Child.nId”。父母......所以它不应该需要整个孩子的图表。

我对吗?可能吗?

4

1 回答 1

2

您可以通过创建“存根实体”并将其附加到上下文来实现此目的。C# 语法示例:

var child = new Child { ID = aChildId };
mContext.Children.Attach(child);
oParent.Children.Add(child);
于 2013-08-05T16:08:48.547 回答