【问题标题】:Entity Binding in Winforms - one to manyWinforms 中的实体绑定 - 一对多
【发布时间】:2009-06-12 09:04:28
【问题描述】:

在一对多关系中创建新记录时,我正在努力使用实体框架。我定义了以下表格:


个人互联网地址
互联网地址

实体框架创建了具有名为 PersonInternetAddresses 的导航属性和 InternetAddresses 的 EntityObjects Person,并具有指向人员的导航属性。

为了创建一个新的 InternetAddresses 记录,我创建了一个带有几个文本字段的表单和一个 InternetAddresses 的绑定源。

在我的“新建”按钮下,我放置了以下代码:

internetAddressesBindingSource.AddNew();            
(internetAddressesBindingSource.Current as InternetAddresses).Id = Guid.NewGuid();
(internetAddressesBindingSource.Current as InternetAddresses).Persons = InternetAddresses.Persons;

在最后一行我收到以下错误:

EntityCollection 已经被初始化。 InitializeRelatedCollection 方法只能在对象图的反序列化期间调用以初始化新的 EntityCollection。

我猜我无法通过 InternetAddresses 的导航属性设置人员,这意味着实体框架本身会创建一个 PersonInternetAddresses 记录。由于模型中没有 PersonsInternetAddresses EntityObject 我很卡!

【问题讨论】:

    标签: winforms binding entity


    【解决方案1】:

    找到了!

    Persons 的类型是 EntityCollection 啊! 出于测试目的,我将代码更改为:

    internetAddressesBindingSource.AddNew();            
            (internetAddressesBindingSource.Current as InternetAddresses).Id = Guid.NewGuid();            
    
            foreach(Person p in InternetAddresses.Persons)
            {
                (internetAddressesBindingSource.Current as InternetAddresses).Persons.Add(p);
            }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-10-13
      • 1970-01-01
      • 2011-02-17
      • 2012-03-30
      • 2014-12-05
      • 2011-06-28
      • 2010-10-10
      • 2016-01-13
      相关资源
      最近更新 更多