【问题标题】:WinForm for creating ADO.NET Entities that have relationships with other entitiesWinForm 用于创建与其他实体有关系的 ADO.NET 实体
【发布时间】:2010-06-15 15:45:51
【问题描述】:

我对 ADO 实体框架非常陌生,我正在寻找最佳实践。

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

现在我想创建一个允许用户填写Person 的基本信息和Address 的Windows 窗体。通常,我只需将Person 实体拖到一个空白的Windows 窗体上,VS2010 就会自动创建必要的字段以及绑定。但是我需要做哪些额外的工作才能确保在用户填写此表单时发生以下情况:

  1. 表单的Address 部分保存在Address 表中
  2. Person信息与1中创建的Address的主键一起保存在Person表中。
  3. 用户从不触摸/看到任何主键。

我认为我的困惑来自于我期望 IDE 完成比预期更多的编码;如果我不得不快速破解这个问题,我可能会在“保存”按钮中添加一个点击事件,该按钮首先调用 Address 上的 SaveChanges(),然后是 Person。这是最佳做法,还是有更可接受的方法?

【问题讨论】:

  • 我很抱歉知道这种情况经常出现,但我无法通过搜索找到答案。
  • 您是否在建模:多个人住在一个​​地址?
  • 它可能会发生。我喜欢有一个存储所有地址的地址表,因为会有其他实体可以引用它。此外,我想从更一般的角度了解最佳做法。
  • 您可以很容易地建模:1 个人有多个地址。当然还有多人共享地址的 NxN 模型。

标签: c# visual-studio entity-framework visual-studio-2010 ado.net


【解决方案1】:

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

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

您有具体的问题吗?

【讨论】:

  • 我没有具体问题;刚刚适应 C#/ADO/.NET。我也知道我可以删除与键相关的控件,但我更不确定如何将相关实体保存在同一个表单上。我想我需要阅读 DataContext,因为这似乎比我想象的要多。
  • 是的,请阅读。也有多种方法可以创建新对象。但这相对容易。不要摆弄键,而是将实体添加到集合中或在属性中设置它们。
猜你喜欢
  • 2017-01-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多