0

我有一个 WPF 应用程序使用 Entity Framework 4 和 Self-Tracking Entities 使用数据。在其中我有一个带有 2 个控件的窗口,其中一个使用 ContentControl 和来自合并资源字典的模板显示对象的“详细信息”部分。另一个具有相关对象所属的组列表框和它可能属于的可用组的组合框带有通过命令连接到控件的按钮,以根据组合框的 SelectedItem 从绑定的组集合中添加/删除项目. 所有这些都由 DependencyPropertys 绑定在一起。

在我的窗口中,我有对象的 DP,我们正在编辑的 EditedItem 和一个只读属性,其中包含它可能属于的组的组列表,并通过 XAML 将其绑定到我的控件。

所以....

如果我为我的一个实体创建一个新实例,请设置它的属性,如下所示:(真的这是确切的代码)

        Employee employee = Context.CreateObject<Employee>();
        employee.Name = "Joe Nobody's Brother Steve";
        employee.Active = true;
        employee.Username = "snobody";

        Group group = Context.CreateObject<Group>();
        group.Name = "Losers";
        group.DisplayName = "Spirit Squad";

        employee.Groups.Add(group);

并将其设置为我的 Window 的 EditedItem 它可以正常工作!

但是,如果我从数据库中获取完全相同的实体,则 Groups ListBox 为空。有任何想法吗?

4

1 回答 1

0

事实证明我在其他地方犯了一个错误:我需要打电话:

    ObjectContext.LoadProperty(entity, navigationProperty);

在我的导航属性上让他们得到填充。我认为这与我的对象都派生自核心对象以及我在核心对象的 ObjectSet 上使用 OfType 选择它们的事实有关。或者它可能是行为,但我想我之前会遇到它。

但是,嘿,我会开始工作,这很容易集成到我的选择方法和属性中。

将此归结为对 EF4 的无知。

于 2010-10-01T18:07:51.253 回答