Tag: entity framework core

使用LinqKit PredicateBuilder进行相关模型(EF Core)

我想使用LinqKit的PredicateBuilder并将谓词传递给相关模型的.Any方法。 所以我想构建一个谓词: var castCondition = PredicateBuilder.New(true); if (movies != null && movies.Length > 0) { castCondition = castCondition.And(c => movies.Contains(c.MovieId)); } if (roleType > 0) { castCondition = castCondition.And(c => c.RoleId == roleType); } 然后使用它来过滤与谓词中的模型有关的模型: IQueryable result = _context.Name.AsExpandable().Where(n => n.CastInfo.Any(castCondition)); return await result.OrderBy(n => n.Name1).Take(25).ToListAsync(); 但这会导致System.NotSupportedException: Could not parse expression ‘n.CastInfo.Any(Convert(__castCondition_0, Func“2))’: The given […]

无法使用数据注释

所以在这里我们试图在游戏开始之前处理EF7并且我遇到了我只能称之为疯狂的事情。 在EF6中我使用了相当多的注释,我试图将其转移到EF7中,根据UnicornStore项目,这是完全有效的,但是我遇到了一个问题,其中visual studio 2015抱怨我没有参考到System.ComponentModel.DataAnnotations程序集。 很公平,我添加了对程序集的引用,现在我从DNX Core 5.0获得以下内容: Error CS0234 The type or namespace name ‘DataAnnotations’ does not exist in the namespace ‘System.ComponentModel’ (are you missing an assembly reference?) Lib.DNX Core 5.0 对于我的生活,我无法弄清楚这里发生了什么,因为当我看到UnicornStore作为我的参考时,在project.json中没有对该程序集的引用,但是项目中有一个引用。 lock.json,据我所知,你不应该编辑那个文件。 最重要的问题是我做错了什么? 为什么DNX 4.5.x不会抱怨引用而DNX Core 5.0呢?

我可以在EntityFramework Core 1.0 rc2中配置拦截器吗?

在本博客文章中所示的entity framework6中,有一种方法可以配置拦截器,该拦截器可以记录所有慢速查询,包括堆栈回溯。 2015年的一个问题是关于之前称为EF7的测试版的早期测试结果,这表明在asp.net vnext早期测试版中它是不可能的 。 然而,EF Core的整个设计是可组合的,并且在这里讨论github bug跟踪器时,你可能有一种技术可以将一些低级类(如SqlServerConnection子类化,然后在那里覆盖一些方法,以获得一些你可以获得的点数。执行查询之前和之后的挂钩,如果执行了毫秒计时器值,则添加一些低级别日志记录。 这仍然是必要的,也是EF Core 1.0.0-rc2-final中的唯一技术(目前截至2016年6月)?

entity framework核心:私有或受保护的导航属性

是否有可能在EFCore中定义具有私有或受保护访问级别的导航属性,以使这种代码工作: class Model { public int Id { get; set; } virtual protected ICollection childs { get; set; } }

如何在EF Core 2.0中显示基础SQL查询?

在这个“ .NET Core 2.0 Released! ”video结束时的3:15,Diego Vega展示了Entity Framework Core 2.0中的新function演示。 作为其中一部分, 控制台应用程序中显示了底层SQL的转储。 我在Stack Overflow上看到很多答案,建议人们使用SQL分析器来查看底层查询。 但现在我很好奇:你怎么能做迭戈维加做的事情,并在应用程序中显示查询?

EF Core – 表’* .__ EFMigrationsHistory’不存在

我想强调这是.NET Core,而关于EF 6.0的线程不适用于这个问题 我创建了我的DbContext并将其添加到DI中,但是当我执行dotnet ef database update -v它不想创建迁移表__EFMigrationsHistory 。 是否还有其他一些我应该先做的命令,或者这是EF Core MySQL适配器的错误? MainDbContext using Microsoft.EntityFrameworkCore; using MySQL.Data.EntityFrameworkCore.Extensions; using Web.Models; namespace Web.Infrastructure { public class MainDbContext : DbContext { public DbSet Users { get; set; } protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { optionsBuilder.UseMySQL(“connection-string-here”); base.OnConfiguring(optionsBuilder); } } } 错误 查找DbContext类… 使用上下文’MainDbContext’。 在服务器’localhost’上使用数据库’db’。 MySql.Data.MySqlClient.MySqlException:表’db .__ EFMigrationsHistory’不存在 表’db .__ […]

entity framework核心1.0连接字符串

我们正在开发一个不同的大型ASP.NET Core MVC 1.0应用程序。 我们的每个应用程序有4层,如下所示: DTO 存储库(entity framework – 代码优先) 服务(业务逻辑) MVC(UI-MVC) 目前,在处理所有数据库操作的存储库中,我们对DbContext中的数据库连接字符串进行了硬编码,如下所示: protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { optionsBuilder.UseSqlServer(“Data Source=somedatabase.database.windows.net;Initial Catalog=database;Integrated Security=False;User ID=username;Password=password;Connect Timeout=60;Encrypt=True;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False;MultipleActiveResultSets=true”); } 该项目作为独立的ASP.NET Core 1.0项目位于MVC项目之外。 它还有一个空的Program.cs文件,它似乎是执行代码到数据库命令行所必需的(dotnet ef migrations add和dotnet ef database update)。 我们在DbConext中有一个硬编码连接字符串的原因是因为当我们使用下面的代码时,在执行dotnet ef命令时,我们得到一个对象引用未设置为对象exception的实例。 protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { optionsBuilder.UseSqlServer(ConfigurationManager.ConnectionStrings[“StandardDatabase”].ConnectionString); } 但是,由于我们有一个Program.cs,如果我们为连接字符串添加Debug.WriteLine并运行项目,它会返回正确的连接字符串,如果我们在U​​I中的appsettings.json文件中设置连接字符串,用户界面也将成功连接。 问题:上面提到的堆栈是我们用于几个“Micro Apps”的,这意味着我们有几个连接到多个数据库的项目。 我们还希望利用Development,Staging和Production连接字符串。 如果我们使用Configuration Manager连接字符串,一切都适合日常操作; 但是,当我们想要将Entity Frameworks代码用于数据库命令行时,我们需要进入我们想要更新的每个存储库,并将DbContext更改为硬编码连接字符串,执行命令,然后将它们更改回完成时,这变得非常麻烦。 问题:我们是否只是这样做错误,是否有一种建立entity […]

entity framework7 DbContext脚手架

我正在尝试使用ASP.NET 5和Entity Framework 7为现有数据库结构生成DbContext 。毫不奇怪,没有很多关于如何轻松完成此操作的文档。 另外,我想仅仅支持上下文; 有大约900个表,我只关心它们中的一些,我不需要每个表的模型类。 我一直在使用这里指定的命令,但运气不好。 所以,我想我有两个问题: 生成的上下文文件位于何处? 我在命令提示符下运行命令没有失败,但没有其他事情发生。 我知道我至少在正确的位置,因为我可以添加不受支持的属性的旧EF6模型,它给我一个错误,他们不支持。 是否可以仅生成没有相应模型类的上下文?

如何设置Entity Framework Core迁移超时?

我正在使用最新的(1.0.0)版本的EF Core。 我有一个迁移到一个相当大的数据库上运行。 我跑: dotnet ef数据库更新-c ApplicationDbContext 得到: 超时已过期。 操作完成之前经过的超时时间或服务器没有响应。 在连接字符串中,我明确设置了超时,如下所示: 连接超时= 150000 不幸的是,它没有帮助。 我该怎么做?

在Entity Framework Core中建模文件夹结构

我想将分层文件夹结构保存到SQL数据库中。 这堂课是这样的: public class Folder { public Folder() { Children = new List(); } public string Name { get; set; } public int Id { get; set; } public int? ParentId { get; set; } public Folder Parent { get; set; } public ICollection Children { get; set; } } 我正在尝试使用Entity Framework Core映射它: builder.Entity() .HasKey(i […]