ef-code-first相关内容

与 EF Code First 迁移持续集成

我想知道我是否可以完全自动化代码优先迁移以实现持续集成. 目前我的持续集成只是简单地更新代码更改,但是,我手动生成迁移,并更新我的持续集成服务器上的数据库. 生成迁移并自动更新数据库是否可靠/可能/推荐? 例如: 我的用户具有属性 userId 和用户名.然后我将属性年龄添加到代码中.当前方案需要我创建一个迁移来捕获此更改,然后我将我的更改签入到版本控制中.持续集成将发现这 ..

在 Json.net 中序列化一对多关系

我首先使用实体​​框架代码进行数据访问,并且我有一个包含员工集合的公司类.Employee 类也有一个 Company 属性. 我希望能够对 Company 进行序列化,并将员工列表包含在序列化中. 这是公司: 公开课公司{公共长 ID { 获取;放;}公共字符串名称 { 获取;放;}公共日期时间?成立{得到;放;}公共虚拟 IList员工{得到;放;}公共日期时 ..

在不同的 TFS 分支上工作时丢失 EF 代码优先迁移?

我们正在使用 TFS,并且我们的 Dev 有不同的分支. 在分支 A 中,我们进行了迁移以更改列大小 在分支 B 中,我们进行了迁移以添加新表.这个分支不知道分支A的修改!! 两个修改都合并到主分支. 当我更新数据库时,它会进行 2 次迁移,但最后告诉我有待处理的更改.如果我执行添加迁移,它会创建与第一次迁移相同的迁移(在分支 A 中). 无法更新数据库以匹配当前模型 ..

创建一个 DbSet在实体框架中动态?

在 LINQ to SQL 中,我可以使用 DataContext.GetTable 动态创建存储库.除了在特定的 DbContext 上声明属性之外,是否有类似的方法可以在实体框架 4 中执行此操作?例如: public MyDbContext: DbContext{公共 DbSet我的集合{get;放;}} 我想知道如何像使用 LINQ to SQL 那样动态创建/获取对 MySets 的 ..
发布时间:2022-01-07 16:07:06 C#/.NET

Asp.Net MVC 5 中的多对多关系与标识表和自定义表

我正在尝试将 Asp.Net Identity 生成的表中的用户与我自己的表建立关系.这种关系必须是多对多的,因为许多用户可以处理同一个任务(这是我的表),同时一个用户可以处理多个任务. 公共类任务{公共 int ID { 获取;放;}公共字符串名称 { 获取;放;}公共字符串用户 ID { 获取;放;}公共虚拟 ICollection用户{得到;放;}}公共类 ApplicationUser ..

使用实体框架 6.1 和 MVC 5 从数据库使用代码优先后如何同步模型?

假设 使用 EF 6.1、MVC 5、VS 2013、C# 我有一个在 Toad DM 中为 SQL Server 设计的现有数据库模型,保持它始终更新非常重要 步骤和注意事项 使用 ADO.NET 实体数据模型 我选择了Code First from Database(EF 6.1 中的新功能)来生成模型.注意:模型类和 DbContext 类生成成功,但没有生成 .ed ..

如何在代码优先的 ASP.NET MVC 5 应用程序中正确设置一对多关系中的外键约束

所以我有一个文档表和一个 ApplicationUser 表.一个用户可以上传多个文档,并且使用代码优先方法相应地应用了外键约束.但问题是,我可以保存文档而无需在 Documents 表中分配 UserID 外键 id.我在这里错过了什么?以下是我的新手尝试. 应用程序用户模型: 它是框架提供的标准模型. 文档模型: 公共类文档{公共 int Id { 获取;放;}[字符串长度 ..

EF Core 中是否存在等效于 Database.CompatibleWithModel(bool)

我正在开发一个使用 EFCore 2.1.0-preview1-final 代码优先方法的项目.就像在 EF6(和以前的版本)中一样,我想确保我的 DbContext(和模型)与数据库的兼容性. 在 EF6 中它默认启用,可以使用 Database.CompatibleWithModel(false);.据我所知,EF 使用存储模型信息的 __MigrationHistory 表.EFCor ..
发布时间:2022-01-05 08:21:47 C#/.NET

EF Core 添加迁移调试

如何使用断点进入 OnModelCreating 并查看我的逻辑是否错误,或者 ModelBuilder 是否在做我不期望的事情?我看过很多关于如何调试实际迁移的帖子,但没有看到关于如何观察模型代码是如何生成的. 我试图在我的一些实体上实现一些自定义属性,但它被忽略了;我想看看我的配置在生成模型代码时做了什么. 解决方案 您应该能够在您的代码中调用 Debugger.Launch() ..

如何正确使用 ValueGeneratedOnUpdate()?

我正在将 EF Core 2.1.0-preview1-final CF 方法与 MS SQL Server 2014 一起使用,并希望在一个更新时设置时间戳列自动.我已经使用 ValueGeneratedOnAdd 没有任何问题.当我在数据库中插入一条新记录时,InsertDateTimeUtc 列具有当前的 UTC 日期和时间值,UpdateDateTimeUtc 列具有值 0001-01-0 ..
发布时间:2022-01-05 08:07:08 C#/.NET

在 EF Core 2 中使用单一表名

我希望我的域类名称与我的 db 表名称匹配(没有复数形式). 在 EF Core 1.1 中,我使用以下代码来做到这一点: public static void RemovePluralisingTableNameConvention(this ModelBuilder modelBuilder){foreach(modelBuilder.Model.GetEntityTypes() 中的 ..
发布时间:2022-01-05 08:06:35 C#/.NET

EF Core 是否允许唯一列包含多个空值?

我的实体有一个允许为空的属性.但是,如果它不为空,那么它必须是唯一的.换句话说,该列是唯一的,但允许多个空值. 我试过了: config.Property(p => p.ProductId).IsRequired(false); 我记得努力让它在预核心 EF 中工作. 这可能吗?如何配置实体? 解决方案 是的,您可以使用 EF Core 做到这一点,因为默认情况下,唯一索引 ..
发布时间:2022-01-04 23:58:40 C#/.NET

EF Core 中是否有唯一约束的数据注释(代码优先)?

我想知道 Entity Framework Core 2 代码优先方法中是否有唯一约束的数据注释? 解决方案 在 EF Core 中,您可以流畅地使用扩展方法 HasAlternateKey仅限 API.没有没有数据注释来实现唯一约束. 这篇 MS 文档文章 - 备用键(唯一约束) - 将解释如何使用以及存在哪些进一步的可能性. 上面链接中的一个简短示例: class MyC ..
发布时间:2022-01-04 23:55:09 C#/.NET

实体框架/MVC3:暂时禁用验证

我首先使用 EF 代码.我大量使用代码注释来指定应如何验证数据(模型).但是,通常我只需要在 UI 层进行验证,并且能够在代码中将某些数据保存到数据库时取消验证.但是,一旦我指定了验证规则,它们就会应用于任何地方——在 UI、数据库、数据访问层上. 我能否在 EF 层暂时禁用模型验证,以便我可以使用 SaveChanges() 保存数据而不会出现验证异常? 解决方案 您只需要在调用 ..
发布时间:2022-01-01 17:37:01 C#/.NET

Visual Studio 2012 上的 SSDT 损坏然后修复,再次损坏在 VS2013 上也损坏

在 Windows 8 上安装 Visual Studio 2012 Ultimate 后,通过 SQL Server 对象资源管理器的 SSDT 不起作用.解决方案是从MSDN网站安装最新版本的VS2012. 一切都很好.我可以看到数据库,没问题.不管我是使用 EF defaultConnectionFactory 还是我自己的 connectionString,无论哪种方式,我的所有代码 ..

如何在EF6 Code First中创建对应于枚举的表?

我已关注 MSDN 关于如何处理代码中的枚举首先是 EF6.它可以正常工作,但是创建的表中引用枚举器的字段是一个简单的int. 我更喜欢生成第二个表,其值将遵循 C# 代码中枚举器的定义.因此,在 MSDN 上的示例中,我不仅希望获得与 Department 相对应的表格,还希望看到第二个表格,其中包含来自 Faculty 的项目.> public enum Faculty { Eng, ..
发布时间:2021-12-29 16:26:48 C#/.NET

乐观并发:IsConcurrencyToken 和 RowVersion

我正在创建将在我的应用程序中使用的默认并发策略. 我决定采用乐观的策略. 我的所有实体都映射为 Table per Type (TPT)(使用继承).很快我就了解到,在 Entity Framework 上使用带有继承的 RowVersion 类型的列时会出现问题: 产品Id INT 身份主键行版本 ROWVERSION汽车(继承产品记录)颜色 TYNIINT 不为空,另一个属性.. ..
发布时间:2021-12-28 22:44:49 C#/.NET

EF Code First 迁移以部署旧版本

我正在使用 TFS Release Management 进行持续集成和部署. 我在部署期间使用 migrate.exe 执行数据库迁移,这在您从旧版本迁移到新版本时非常有用.但是,当您想要部署旧版本的应用程序时,它会变得更加混乱. 基本上,保存上下文迁移的程序集必须知道如何从版本 3 转到版本 2.通常,您使用将要部署的程序集作为迁移源,但在这种情况下,您必须使用已部署的程序集,因为 ..