3

我正在尝试编写标题详细信息表单。在 VS2010 C# Winforms 中。BindingSource该表单使用名为的控件绑定到具有名为 Attendees 的属性的实体框架类bindingSource1。网格绑定到另一个BindingSource控件datasource = bindingSource1DataMember = Attendees

我使用代码优先EF。实体类是

public class ContactEvent
{
    public int Id { get; set; }
    public string Title { get; set; }

    private readonly BindingList<ContactEventAttendee> _attendees = new BindingList<ContactEventAttendee>();
    public virtual BindingList<ContactEventAttendee> Attendees
    {
        get { return _attendees; }
    }
}

我使用设计器设置列,删除所有我不想要的列。一旦我保存表单并重新打开它,我不想要的列又回来了

我看过这里 并尝试了这项技术 - 但它没有帮助。无论如何 - 我的问题在设计时显示。

仅当我删除所有绑定的列时才会出现此问题。由于我所有的列都是未绑定的,这就是我想要的。

ContactEventAttendee 类如下;

public class ContactEventAttendee : ILoggedEntity
{
    public int Id { get; set; }
    public Guid RowId { get; set; }
      [ConcurrencyCheck]
    public int RowVersionId { get; set; }
    public int SourceSiteNumber { get; set; }
    public virtual ContactEvent ContactEvent { get; set; }
    public virtual Person Person { get; set; }
}

我在另一个相关课程中也遇到了同样的问题。如果我从表单中删除 bindingNavigator,问题就会消失

数据源是

这里

4

1 回答 1

3

试试看。

public class ContactEvent
{
    public int Id { get; set; }
    public string Title { get; set; }

    public virtual ICollection<ContactEventAttendee> ContactEventAttendees {get; set;}
}

编辑

好的,当我尝试创建一个项目并将其设置为DataSourceClass的时,我遇到了确切的问题DataGridView,这是另一个奇怪的错误?好吧,我们真的不知道,但这是我的解决方案。

  1. 将您分开并EntityCodeFirstClass Project每次更改时重建它。
  2. 在您的主项目中,只需添加以Reference查看下图:在此处输入图像描述
  3. 现在选择你的数据DataGridViewObject在此处输入图像描述

现在,尝试删除所有列并重新构建它。

编辑:我的样本参考

public class ContactEvent
{
    public int Id { get; set; }
    public string Title { get; set; }
    public  ICollection<ContactEventAttendee> _attendees  { get; set;}
}

public class ContactEventAttendee
{
    public int Id { get; set; }
    public Guid RowId { get; set; }
    public int RowVersionId { get; set; }
    public int SourceSiteNumber { get; set; }
    public virtual ContactEvent ContactEvent { get; set; }
}
于 2013-01-05T16:42:53.457 回答