- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
正在关注 MSDN documentation我们可以使用 Local 属性直接从上下文中获取本地/缓存数据,而无需对数据源进行额外请求:
Gets an ObservableCollection that represents a local view of all Added, Unchanged, and Modified entities in this set.
(...)
This property can be used for data binding by populating the set with data, for example by using the Load extension method, and then binding to the local data through this property.
问题是,代码不工作(Local 是空的):
context.SampleEntities.Select(x => new { x.A, x.B }).Load();
// context.SampleEntities.Local.Count is 0
但在这种情况下,它似乎工作正常:
context.SampleEntities.Load();
// context.SampleEntities.Local.Count is not 0
也许有人可以解释一下使用Local 属性的正确方法是什么?
更重要的是,如何将它用于部分加载的实体,如上例所示?
最佳答案
这是预期的行为。本地缓存在 DbContext 对象的生命周期内由您从数据库加载的实体。带查询:
context.SampleEntities.Select(x => new { x.A, x.B })
您没有向应用程序内存加载 SampleEntity 对象,而只有它的属性 A 和 B。Select 也被转换为 sql 查询以限制从查询返回的行,从而提高性能。
关于c# - 在 Entity Framework 中使用 DbSet<TEntity>.Local 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29716884/
这应该很明显,但由于某种原因我无法弄清楚。所以在我的通用存储库类中,我有一个更新方法来更新实体: public void Update(TEntity entity) where TEntity :
我正在围绕 EF Core 编写一个小型包装器方法 DbSet .我有以下方法: public Task> GetAsync(Func, IQueryable> getFunction) {
我正在寻找一种将 Entity 和 TEntity 作为参数传递的方法,以便我可以将此方法用作通用方法。类似的东西: private void AttachSingleEntity(Entit
我想创建 Func, IOrderedQueryable>来自 SortingItems 的列表动态地。我的意思是我想创建以下表达式: entity => entity.OrderBy(c => c.
我正在使用这里提到的模式 http://www.asp.net/mvc/tutorials/getting-started-with-ef-using-mvc/implementing-the-rep
我偶然发现了下一个问题......我有数据库上下文: // For support unit testing... public interface IDbContext : IDisposable
我有一个静态类 DataSource从文件中提取请求的数据并将其作为 List. 返回在 TestRepository (下),我正在使用通用 TEntity , 确定其类类型并从 DataSourc
我正在尝试将 DbLinq 与 SQLite 数据库一起使用,但在尝试转换 ITable 时遇到了问题作为Queryable . 在 DbLinq ( Issue 211 ) 中有一个已知的错误,这可
在 ms 文档中 Razor pages tutorial DbContext 有一个 DbSet Students 集 public class SchoolContext : DbContext
概述/描述 简单:从TEntity 中派生 的运行时类型对象的多态删除添加到 ObjectSet不会提高 IBindingList.ListChanged IBindingList 上的事件Objec
尝试将 Linq to SQL 用于我在家进行的一个小项目。我使用 dbmetal.exe(来自 DBLinq 项目)针对本地 MySQL 数据库生成了上下文代码和我的所有实体类。 一切都运行良好,但
似乎最简单的事情有时很难弄清楚...... 许多代码引用都具有 TEntity 类型,用于对实体数据模型中的实体进行一般处理。我试图在我的代码中使用它并得到:“未知类型'TEntity'”是什么给出的
更新: 我准备了一个通用函数来捕获数据库行以生成列表。我的方法就是这样的。 public class GenericDataAccess : IGenericRepository where
我想写一个通用的方法来返回任何模型,如产品、销售等。像这样的东西(.net 3.5;我不使用 Entity Framework ) public class ProductRepository : I
我想对存储库中的检索方法进行单元测试,该存储库具有模拟的 DbContext,但我无法将模拟的 DbSet 值设置到存储库。 存储库如下所示: public class ChangeLogReposi
我正在尝试讲述一种方法 GetAll()在模拟对象上 _portalUserRepositoryMock返回 IQueryable 类型的对象.我知道是这个类型,因为要测试的类中的方法返回这个类型。
我正在尝试: ... int id = 5; //DB is a instance of DbContext MethodInfo methodFind = DB.GetType().GetMetho
我有以下在 EF7 之前使用的界面。当我尝试使用 EF7 构建应用程序时,我收到以下错误,而且我似乎无法在任何地方找到这种类型。我非常感谢您就如何为 EF7 更改此代码提出建议。 Error CS02
这是我不相信的代码。请检查我如何将实体集合作为参数传递。 public ExamProduced GetExamProduced(XElement xml) { var examProduce
我正在尝试测试存储库的 Get 方法。签名如下: public virtual IEnumerable Get( Expression> filter = null,
我是一名优秀的程序员,十分优秀!