entity-framework相关内容

如何在 EF6 Code First 中将泛型类型与数据库上下文一起使用

例如,假设我有 4 个不同的实体,每个实体都实现了将实体添加到数据库的 Add() 方法: 公共类简介{...公共无效添加(){this._dbContext.Profile.Add(this);this._dbContext.SaveChanges();}...} 现在我想要一个通用类,在一个抽象类而不是 X 个类中实现这种行为.所以我尝试了以下方法: 公共抽象类实体其中 TEntity ..
发布时间:2022-01-20 11:33:52 C#/.NET

如何使用 Entity Framework 和 Moq 进行单元测试?

我是 Moq 的新手,想将它用作数据的后备存储 - 但不接触实时数据库. 我的设置如下: UnitOfWork 包含所有存储库,用于在整个应用程序中访问数据. Repository 表示 DbSet 的直接挂钩,由 DbContext 提供. 一个 DbContext 包含所有 DbSet. 这是我目前的测试: //排列var 用户 = 新用户(){FirstName = ..
发布时间:2022-01-20 11:33:28 C#/.NET

Entity Framework 6(代码优先)实体版本控制和审计

我正在考虑将 Entity Framework 6.1.1 与 SQL Server 2008 R2 结合使用. 目前我正在使用代码优先 EF 功能创建模型和数据库.我的基本用例是创建对特定实体的所有更改的日志(ID 是关键列),以帮助审计人员跟踪所做的所有更改以及由谁进行的更改.例如: |ID|版本|创建日期|创建者|修改日期|修改者|修改操作|...(实体字段的其余部分)------- ..
发布时间:2022-01-20 11:33:10 C#/.NET

实体框架代码先迁移保留现有数据

我正在使用 EF 6.1,并且我在现有数据库中使用代码优先方法,并在生产环境中使用数据. 是否可以迁移模型更改并保留现有客户的数据? 解决方案 是的,但是,根据具体情况(根据更改的复杂性),它可能会很复杂: 概述:https:///docs.microsoft.com/en-us/ef/ef6/modeling/code-first/migrations/existing-da ..
发布时间:2022-01-20 11:33:00 其他开发

我们可以使用枚举作为类型安全的实体 ID 吗?

我们正在使用 EF 6.1 代码优先设置中的一个相当大的模型,并且我们使用整数作为实体 ID. 不幸的是,这并不像我们希望的那样类型安全,因为很容易混淆 id,例如比较不同类型实体的 id (myblog.Id == somePost.Id) 或类似的.甚至更糟:myBlog.Id++. 因此,我提出了使用类型化 id 的想法,因此您不能混淆 id.所以我们的博客实体需要一个 Blog ..
发布时间:2022-01-20 11:32:36 C#/.NET

线程安全的实体框架 6

刚刚开始测试 EF6 及其异步功能.当我意识到它们不是线程安全的时,我很惊讶.我有点假设这就是重点. 多年来,我已经拥有自己的基于 Task 的扩展方法,但我一直在等待 EF 让它们成为线程安全的. 至少我的基于任务的功能 locked 不会相互干扰.EF6 甚至没有走那么远.但主要问题是我的代码与他们的代码共享.即尝试发出异步查询,然后在它完成之前尝试访问触发延迟加载的导航属性(在同 ..

如何使用空间来搜索邮政编码的半径?

背景 我正在编写一个应用程序,它可以在邮政编码的某个半径范围内查找事件.你可以把它想象成ticketmaster,你输入你的邮政编码,x 半径内的所有音乐会都会显示出来. 我有一个包含邮政编码的数据库表,以及每个邮政编码的纬度和经度.我还有一个“EventListings"表,其中每个“事件"都有一个 ZipCode 字段. 问题 目前,我在服务层的 Linq-to-Ent ..
发布时间:2022-01-20 11:32:10 C#/.NET

如何从实体框架 6 中的 Auditlog 实体获取 id

我知道那里有几个类似的帖子,但我找不到任何可以解决此问题的帖子. 我想在 Entity Framework 6 中添加、更改或删除实体(软删除)时添加(某种)AudioLog.我已经覆盖了 SaveChanges,因为我只想为 EntityStates 添加、修改添加日志条目或已删除,我在第一次调用 SaveChanges 之前获取列表.问题是,因为我需要记录已执行的操作,所以我需要检查实体 ..

EF6/Code First:在第一次查询期间超级慢,但仅在调试中

我使用 EF6 rc1 和 Code First 策略,没有预编译视图,问题是:如果我编译并运行 exe 应用程序,运行第一个查询大约需要 15 秒(没关系,因为我仍在处理预生成的视图).但是,如果我使用 Visual Studio 2013 Preview 来调试完全相同的应用程序,则在运行第一个查询之前需要将近 2 分钟: Dim Context = New MyEntities()Dim ..

为 IQueryable 扩展 Where

我需要将 IQueryable 的 Where 方法扩展为这样的: .WhereEx("SomeProperty", "==", "value") 我不知道这是否可能,但我在 SO 中找到了这个:无法使用 LINQ OrderBy 中的属性名称进行排序 我试过这个答案,看起来很有趣(Ziad 的答案): 使用 System.Linq;使用 System.Linq.Express ..
发布时间:2022-01-20 11:29:36 C#/.NET

使用 db-migration 确定数据库中字段的值范围

我使用了 Entity Framework 6.x,并通过代码优先的方法生成了我的数据库.创建数据库后,我决定对我的数据库进行一些更改.例如,我想确定模型中 Size 属性的值范围. 我的模特: 公共类标签:实体,ITag{//////大小可以是 1、2、3 或 4///[范围(1, 4)]公共虚拟 int 大小 { 获取;放;}[必需的][字符串长度(25)]公共虚拟字 ..

实现包含子类的 ICollection 结构

我正在审查一些在 EF 4 天内编写的代码,因为它在性能基准测试中脱颖而出. 代码的目的是使用实体框架实现 ICollection(我们现在使用的是 EF 6.1). 代码存在是因为特定子类中存在的引用在检索时没有具体化 public 父级{公共虚拟 ICollection() Base { get;放;}} 来自数据库,当实际存储的类型是 MyBaseClass 的子类时. ..
发布时间:2022-01-20 11:28:54 其他开发