entity-framework相关内容
例如,假设我有 4 个不同的实体,每个实体都实现了将实体添加到数据库的 Add() 方法: 公共类简介{...公共无效添加(){this._dbContext.Profile.Add(this);this._dbContext.SaveChanges();}...} 现在我想要一个通用类,在一个抽象类而不是 X 个类中实现这种行为.所以我尝试了以下方法: 公共抽象类实体其中 TEntity
..
我的应用程序正在使用 SQL Server 2012、EF6、MVC 和 Web API. 它还使用存储库和各种文件,例如: DatabaseFactory.cs一次性用品.csIDatabaseFactory.csIRepository.csIUnitOfWork.csRepositoryBase.csUnitOfWork.cs 我们已经在控制器和存储库之间使用了一个服务层对于一些复杂
..
我是 Moq 的新手,想将它用作数据的后备存储 - 但不接触实时数据库. 我的设置如下: UnitOfWork 包含所有存储库,用于在整个应用程序中访问数据. Repository 表示 DbSet 的直接挂钩,由 DbContext 提供. 一个 DbContext 包含所有 DbSet. 这是我目前的测试: //排列var 用户 = 新用户(){FirstName =
..
我正在考虑将 Entity Framework 6.1.1 与 SQL Server 2008 R2 结合使用. 目前我正在使用代码优先 EF 功能创建模型和数据库.我的基本用例是创建对特定实体的所有更改的日志(ID 是关键列),以帮助审计人员跟踪所做的所有更改以及由谁进行的更改.例如: |ID|版本|创建日期|创建者|修改日期|修改者|修改操作|...(实体字段的其余部分)-------
..
我正在使用 EF 6.1,并且我在现有数据库中使用代码优先方法,并在生产环境中使用数据. 是否可以迁移模型更改并保留现有客户的数据? 解决方案 是的,但是,根据具体情况(根据更改的复杂性),它可能会很复杂: 概述:https:///docs.microsoft.com/en-us/ef/ef6/modeling/code-first/migrations/existing-da
..
我们正在使用 EF 6.1 代码优先设置中的一个相当大的模型,并且我们使用整数作为实体 ID. 不幸的是,这并不像我们希望的那样类型安全,因为很容易混淆 id,例如比较不同类型实体的 id (myblog.Id == somePost.Id) 或类似的.甚至更糟:myBlog.Id++. 因此,我提出了使用类型化 id 的想法,因此您不能混淆 id.所以我们的博客实体需要一个 Blog
..
刚刚开始测试 EF6 及其异步功能.当我意识到它们不是线程安全的时,我很惊讶.我有点假设这就是重点. 多年来,我已经拥有自己的基于 Task 的扩展方法,但我一直在等待 EF 让它们成为线程安全的. 至少我的基于任务的功能 locked 不会相互干扰.EF6 甚至没有走那么远.但主要问题是我的代码与他们的代码共享.即尝试发出异步查询,然后在它完成之前尝试访问触发延迟加载的导航属性(在同
..
我们有一个类似于以下的查询: 来自 db.Table.Include(x => x.Parent) 中的 x.Include(x => x.Parent.Relation).Include(x => x.Relation).Include(x => x.Children)其中/* 一些查询 */选择 x 问题是在添加.Include(x => x.Children)时,Entity Frame
..
背景 我正在编写一个应用程序,它可以在邮政编码的某个半径范围内查找事件.你可以把它想象成ticketmaster,你输入你的邮政编码,x 半径内的所有音乐会都会显示出来. 我有一个包含邮政编码的数据库表,以及每个邮政编码的纬度和经度.我还有一个“EventListings"表,其中每个“事件"都有一个 ZipCode 字段. 问题 目前,我在服务层的 Linq-to-Ent
..
..
..
我知道那里有几个类似的帖子,但我找不到任何可以解决此问题的帖子. 我想在 Entity Framework 6 中添加、更改或删除实体(软删除)时添加(某种)AudioLog.我已经覆盖了 SaveChanges,因为我只想为 EntityStates 添加、修改添加日志条目或已删除,我在第一次调用 SaveChanges 之前获取列表.问题是,因为我需要记录已执行的操作,所以我需要检查实体
..
有没有办法从 ChangeTracker 中获取原始实体本身(而不仅仅是原始值)? 如果 State 是 Modified,那么我想我可以这样做: //从 DbContext.ChangeTracker 中获取 DbEntityEntry...//存储当前值var currentValues = entry.CurrentValues.Clone();//设置为原始值entry.Curre
..
背景优先:我在 Windows 10 Pro 笔记本电脑上的 Visual Studio 2015(最新的 nuget 6.1.3 指向本地 SQL Server 2014 SP1 Express 数据库)中有一个数据库优先的 EF6 模型.在我从 Windows 8.1 和 Visual Studio 2013 升级之后.我也在大约 6 个月前从 EF5 升级了模型,但我认为这无关紧要,因为我也
..
我使用 EF6 rc1 和 Code First 策略,没有预编译视图,问题是:如果我编译并运行 exe 应用程序,运行第一个查询大约需要 15 秒(没关系,因为我仍在处理预生成的视图).但是,如果我使用 Visual Studio 2013 Preview 来调试完全相同的应用程序,则在运行第一个查询之前需要将近 2 分钟: Dim Context = New MyEntities()Dim
..
我有一个关于实体框架查询执行性能的问题. 架构: 我有一个这样的表结构: 创建表 [dbo].[DataLogger]([ID] [bigint] IDENTITY(1,1) 非空,[项目ID] [bigint] NULL,约束 [PrimaryKey1] 主键集群([ID] ASC))创建表 [dbo].[DCDistributionBox]([ID] [bigint] IDENT
..
我刚刚下载了实体框架 6 并创建了一个全新的项目来测试它.我们目前使用的是 EF 5. 添加所有表和存储过程后,我尝试构建项目但出现错误: “System.Data.Objects.ObjectParameter"类型的值不能转换为“System.Data.Entity.Core.Objects.ObjectParameter". 'System.Data.Entity.Core
..
我需要将 IQueryable 的 Where 方法扩展为这样的: .WhereEx("SomeProperty", "==", "value") 我不知道这是否可能,但我在 SO 中找到了这个:无法使用 LINQ OrderBy 中的属性名称进行排序 我试过这个答案,看起来很有趣(Ziad 的答案): 使用 System.Linq;使用 System.Linq.Express
..
我使用了 Entity Framework 6.x,并通过代码优先的方法生成了我的数据库.创建数据库后,我决定对我的数据库进行一些更改.例如,我想确定模型中 Size 属性的值范围. 我的模特: 公共类标签:实体,ITag{//////大小可以是 1、2、3 或 4///[范围(1, 4)]公共虚拟 int 大小 { 获取;放;}[必需的][字符串长度(25)]公共虚拟字
..
我正在审查一些在 EF 4 天内编写的代码,因为它在性能基准测试中脱颖而出. 代码的目的是使用实体框架实现 ICollection(我们现在使用的是 EF 6.1). 代码存在是因为特定子类中存在的引用在检索时没有具体化 public 父级{公共虚拟 ICollection() Base { get;放;}} 来自数据库,当实际存储的类型是 MyBaseClass 的子类时.
..