1

我对ADO实体框架非常陌生,并且正在寻找最佳实践。用于创建与其他实体具有关系的ADO.NET实体的WinForm

这里是场景:我有一个数据库与Person表和Address表。 Person有一个外键引用主键Address,一个自动递增的int。首先,我使用VS 2010创建了一个ADO Entity模型,并且足够肯定IDE可以理解这种关系。

现在我想创建一个Windows窗体,允许用户填写Person的基本信息和Address。通常,我可以将Person实体拖到空白的Windows窗体上,VS2010将自动创建必要的字段以及绑定。但是,额外的工作,我需要,以确保发生以下情况时,这种形式是由用户填写的事:

  1. 形式的Address部分被保存在Address
  2. Person信息保存在Person表中,以及在1中创建的Address的主键。
  3. 用户从不触及/看到任何主键。

我觉得我的困惑来自于我期待IDE做比预期更多的编码;如果我必须快速破解这个,我可能会添加一个单击事件到“保存”按钮,首先调用Address上的SaveChanges(),然后再调用Person。这是最佳做法,还是有更可接受的做法?

+0

我很抱歉提前知道这种情况出现了很多,但我无法通过搜索找到答案。 – Jay 2010-06-15 15:48:49

+0

你在建模:多人住在1个地址? – 2010-06-15 15:53:28

+0

它可能发生。我喜欢在地址表中存储所有地址,因为会有其他实体可能引用它。此外,我想从更一般的角度来了解最佳做法。 – Jay 2010-06-15 15:55:29

回答

0

你不应该做很多额外的事情。但是您应该在Address和Person的DataContext上调用SaveChanges(以正确处理不同的插入/删除方案)。

您应该简单地删除与键有关的所有控件(列)。

您是否遇到特定问题?

+0

我没有特定问题;只是调整到C#/ ADO/.NET。 我也知道我可以删除与按键相关的控件,但我更不确定如何将相关实体保存在同一个表单上。我想我需要阅读DataContext,因为它似乎比我想象的还要多。 – Jay 2010-06-15 15:59:57

+0

是的,阅读。有多种方法可以创建新的对象。但它相对容易。不要拨弄钥匙,而是将实体添加到集合或将其设置在属性中。 – 2010-06-15 16:03:10

相关问题