- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
为什么(在 WPF、C#、 Entity Framework 中)将 ListBox
绑定(bind)到在 ObjectSet
上创建的 ObservableCollection
(来自 Entity框架)而不是直接绑定(bind)到 ObjectSet
?
还有一个问题:当我将 ListBox
绑定(bind)到 ObservableCollection
时,对集合的任何添加都会更新 ListBox
。伟大的。但是 ObservableCollection
是在 ObjectContext
上创建的(在 Entity Framework 中),向集合中添加新项目不会将项目添加到上下文中……如何解决这个问题? ???
最佳答案
(注意你的“再问一个问题”点)
Entity Framework 4.1 提供了一个在 WPF 应用程序中特别有用的新功能 - 对象上下文的本地 View 。它可以通过 Local
获得。 DbSet<T>
的属性(property). Local
返回 ObservableCollection<T>
包含 T
类型的所有实体当前附加到上下文(而不是状态 Deleted
)。
Local
很有用,因为它会自动与对象上下文保持同步。例如:您可以运行查询以将对象加载到上下文中......
dbContext.Customers.Where(c => c.Country == "Alice's Wonderland").Load();
... 然后将上下文中的对象公开为 ObservableCollection
...
ObservableCollection<Customer> items = dbContext.Customers.Local;
... 并将其用作 ItemsSource
一些 WPF ItemsControl。当您将对象添加到此集合或从中删除对象时 ...
items.Add(newCustomer);
items.Remove(oldCustomer);
...它们会自动添加到 EF 上下文中/从中删除。打电话SaveChanges
会将对象插入/从数据库中删除。
同样在上下文中添加或删除对象......
dbContext.Customers.Add(newCustomer);
dbContext.Customers.Remove(oldCustomer);
... 自动更新 Local
收集并因此触发 WPF 绑定(bind)引擎更新 UI 的通知。
Here是关于 Local
的概述在 EF 4.1 中。
关于c# - ObservableCollection 优于 ObjectSet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6193625/
我正在尝试缩短长代码。原始代码执行以下操作: using (var context = new DataEntities()) { context.Table1.Foreach(x =>{ /
我正在使用 EntityFramework 和 IRepository 模式,我需要向所有 EntityCollections 添加一些事件。 有没有办法获取 ObjectContext 上的集合列表
概述/描述 简单:从TEntity 中派生 的运行时类型对象的多态删除添加到 ObjectSet不会提高 IBindingList.ListChanged IBindingList 上的事件Objec
我已经填充了我的数据上下文。现在我需要填充一个表 get()。我遇到了 ObjectSet 的问题,因为我不知道如何填充它。 DataModel.Fakes.ShimMyEntities.Constr
作为MSDN建议我们可以使用以下 ObjectContext using (AdventureWorksEntities context = new AdventureWorksEntities())
为什么(在 WPF、C#、 Entity Framework 中)将 ListBox 绑定(bind)到在 ObjectSet 上创建的 ObservableCollection(来自 Entity框
我正在我的项目中进行 DAO 单元测试,但我在使用 ObjectSet 类时遇到了问题。我必须创建一个新的 ObjectSet 但为了做到这一点,我不能连接到数据库。所以我不能使用 BusinessM
ObjectSet 的默认顺序是按身份排序。我可以在映射中使用任何属性来指定自定义顺序吗?我不想引入任何可以对实体进行排序的属性,而不是“EntitiesByMyOrder”属性,我希望将特定顺序作为
博客圈似乎有一个共同的共识,即 Entity Framework 4 的一个重要特性是能够在通用 ObjectSet 之上创建通用存储库。通用存储库的示例实现基本上是 ObjectSet 的包装器,它
我是 Entity Framework 的新手,我有一个问题。是否可以将类型 var 转换/转换为强类型 ObjectSet。 例如我想做这样的事情(这只是我头脑中的一个例子,不是真正的代码): va
我的目标是使用 Entity Framework (也许是反射)来创建这样的函数: public List getTableByName(string tableName) { ObjectQu
除非我这样写,否则 ObjectSet.Single(predicate) 不起作用(Where() 和 toList() 方法也是如此): ObjectSet.Cast().Single(predi
为了在密集的数据库使用系统中进行访问控制,我必须实现一个对象集包装器,其中将检查 AC。 主要目标是进行此更改以保留现有的数据库访问代码,该代码是通过对所有类的实体进行 linq 实现的(没有集中的数
我创建了一个通用的 ObjectSet在我的通用存储库中。 我想得到的是 name ObjectSet 的 EntityKey这样我就可以在 DataContext.GetObjectByKey 中使
我使用:EntityFramework + POCO 这是事情: public interface IBaseType { int Id { get; set; } } public clas
我正在使用Entity Framework 4建立存储库,但无法使ObjectSet.AddObject()方法正常工作。这是我正在使用的代码-为简单起见,我将其从存储库中复制到了单元测试方法中: /
我想将一组条件 where 子句附加到 ObjectSet 的末尾。但是,子句不会执行,而是运行原始查询,例如: using (Entities context = new Entities()){
我希望这是有道理的。我有一个使用 Entity Framework 的 ASP.NET Web 应用程序。我在数据库中添加了几个自定义表,并创建了一个单独的项目来处理这些表的 CRUD 操作。我选择了
我已将数据库 View 添加到我的实体模型中。现在我试图将一个 ObjectSet 放入我的 ObjectContext 中,这样我就可以访问我的应用程序中的 View 。 对于常规表,我的 Obje
我对 TypeScript 很陌生,尤其是对 Object(Sets) 的自定义 Palantir 实现。我想要存档的内容:我想将 ObjectSet 过滤为某些特定值。然后我想返回这些值中的第一个。
我是一名优秀的程序员,十分优秀!