entity-framework-core 相关问题

实体框架(EF)Cor​​e是由Microsoft开发的开源ORM。

Entity Framework Core / SQL Server Express 在 m1 mac 并行上返回字节数组而不是字符串

想知道是否有其他人遇到 Entity Framework Core 在从 m1 mac 和 Parallels 上运行的本地 SQL Server Express 实例读取数据时抛出错误的问题? ...

回答 1 投票 0

在 EF Core 2.1 中的 DbContext 上执行 RAW SQL

我对此进行了研究,总是发现这样的例子: var blogs = context.Blogs .FromSql("从 dbo.Blogs 选择 *") .ToList(); 问题是,我不想在 ...

回答 4 投票 0

C# 在使用 EF core 构建查询表达式时无法使用 .Any()

我正在尝试构建一个表达式>: 公共静态表达式> CreateAny( 表达 我正在尝试构建一个表达式>: public static Expression<Func<T, bool>> CreateAny<T, TAnother>( Expression<Func<T, IEnumerable<TAnother>>> collectionPropertyExpression, Expression<Func<TAnother, bool>> anyPredidate ) { var param = Expression.Parameter(typeof(T), collectionPropertyExpression.Parameters.Single().Name); var anyMethodInfo = typeof(Enumerable) .GetMethods(BindingFlags.Public | BindingFlags.Static) .Single(m => m.Name == "Any" && m.GetParameters().Length == 2) .MakeGenericMethod(typeof(TAnother)); var anyCallExpression = Expression.Call( anyMethodInfo, collectionPropertyExpression.Body, Expression.Lambda<Func<TAnother, bool>>(anyPredidate.Body, anyPredidate.Parameters.Single()) ); return Expression.Lambda<Func<T, bool>>(anyCallExpression, param); } 这就是我的使用方式: public async Task<IActionResult> Tests() { /*I want it returns something like: a => a.ReceivedNotifications.Any(noti => noti.Status == NotificationStatus.Read) */ var exp = ExpressionHelper.CreateAny<Account, AccountNotification>( a => a.ReceivedNotifications, noti => noti.Status == NotificationStatus.Read ); logger.LogInformation("{0}", exp); // a => a.ReceivedNotifications.Any(noti => (Convert(noti.Status, Int32) == 2)) return Ok(await unitOfWork.Accounts.GetAsync(expression: exp)); // error here } 我得到了一个错误: System.InvalidOperationException:无法使用 LINQ 表达式“a” 翻译的。要么以可翻译的形式重写查询, 或通过插入调用显式切换到客户端评估 “AsEnumerable”、“AsAsyncEnumerable”、“ToList”或“ToListAsync”。看 https://go.microsoft.com/fwlink/?linkid=2101038了解更多信息。 我需要知道为什么会出现错误,有什么解决方案吗? 预先感谢您。 我建议利用编译器进行反射,而不是手动搜索方法并组合结果表达式。 public class ExpressionHelper { public static Expression<Func<T, bool>> CreateAny<T, TAnother>( Expression<Func<T, IEnumerable<TAnother>>> collectionPropertyExpression, Expression<Func<TAnother, bool>> anyPredicate ) { Expression<Func<IEnumerable<TAnother>, Func<TAnother, bool>, bool>> anyTemplate = (collection, predicate) => collection.Any(predicate); var entityParam = collectionPropertyExpression.Parameters[0]; var resultExpression = anyTemplate.Body; // replacing template parameters by function's parameters resultExpression = ReplacingExpressionVisitor.Replace(anyTemplate.Parameters[0], collectionPropertyExpression.Body, resultExpression); resultExpression = ReplacingExpressionVisitor.Replace(anyTemplate.Parameters[1], anyPredicate, resultExpression); return Expression.Lambda<Func<T, bool>>(resultExpression, entityParam); } }

回答 1 投票 0

.NET Core / Blazor 模型属性不会持久化到数据库

我的 Blazor 应用程序中有一个模型,我想为其创建“临时”属性。该属性在应用程序内部使用,但我不想将其保存到数据库中。 然而,...

回答 1 投票 0

如何测试调用返回 IQueryable 的持久性方法的方法

我在一些地方读到,调用数据库返回 IQueryable 的方法是一个很好的实践,因为它允许使用 Select、Where 等方法在服务中扩展查询,并且

回答 1 投票 0

如何使用 EF Core 为一对多实体的 POST 请求设置 JSON 格式?

我有一个带有表演者和场地模型的 ASP.NET Web API。我正在尝试创建一个预订模型,其中表演者有很多预订,场地有很多预订,而预订有一个表演...

回答 1 投票 0

如何使用 EF Core 在 C# 中使字段唯一?

我想在 EF Core 中使字段唯一,并且我正在使用 .NET 5。我无法使用 [Index(IsUnique = true)] 属性,因为如果我尝试,则会收到错误。也许它是 EF 的一部分,但不是 EF Core。 我怎样才能

回答 2 投票 0

Entity Framework Core:如何从派生类型动态获取 DbSet?

我有以下抽象类,名为 Sector: 公共抽象类 Sector { 公共字符串 ID {get;放;} 公共字符串名称{get;放;} 公共部门(){} } 还有第二堂课,

回答 1 投票 0

本地发布应用程序时 IIS 出错,Entity Framework Core 迁移不起作用

如您所见,“实体框架迁移”上有一个命令显示错误消息: dotnet ef dbcontext 列表 --json 在当前工作方向中发现了多个项目...

回答 1 投票 0

有没有办法使用 EF Core (Npgsql) 将 IP 地址设置为主键

实体: 公共类IP地址信息 { 公共IP地址地址{获取;放; } // ... } 配置: 公共无效配置(EntityTypeBuilder构建器) {

回答 1 投票 0

当我单击删除按钮时,出现错误,并且没有在带有 Entity Framework Core 的 ASP.NET Core 中点击删除控制器

我正在尝试使用 ASP.NET Core 和 Entity Framework Core 删除某些类别。当我点击“删除”时,显示错误 该页面无法正常工作。如果问题仍然存在,请联系...

回答 1 投票 0

当中间存在弱实体时如何用子实体填充实体

用户表: 公共类用户:BaseEntity { 公共字符串用户名{获取;放; } 公共字符串帐户名称 { get;放; } 公共列表 站点 { get;放; } } 站点表:...

回答 1 投票 0

EF Core 6 无法确定导航所代表的关系

我的 DbContext 中有以下表格: 公开课员工 { [钥匙] 公共 int Id { 得到;放; } 公共长员工代码{获取;放; } 公共用户角色...

回答 1 投票 0

“propertyName”不能用作实体类型“typeName”的属性,因为它被配置为导航

我有一个实体用户,具有以下内容: 公开课用户 { [关键,必填] 公共 int Id { 得到;放; } 公共 int 性别 ID { 获取;放; } 公共虚拟性别性别{获取;设置;...

回答 5 投票 0

在 Entity Framework Core 中调用 DbSet.Add 后,拥有的类型属性丢失值

我目前正在使用 Entity Framework Core 开发一个项目,并且遇到了自有类型的问题。我有类似于以下的结构: 主实体类 { 公共 Guid ID { g...

回答 1 投票 0

调用存储过程时在 EF Core 中包含导航属性

我有一个 SQL Server 存储过程,它从 Records 表中选择实体,并且我有另一个表,其中每个 Record 实体都有许多文件,处于一对多关系。 我创造了...

回答 1 投票 0

为什么 .NET 在错误的 nuget 版本上崩溃

我的设置如下 项目数据库 我的设置如下 项目数据库 <PackageReference Include="Microsoft.EntityFrameworkCore" Version="8.0.5" /> <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="8.0.5"> <PrivateAssets>all</PrivateAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> </PackageReference> <PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="8.0.4" /> <PackageReference Include="Npgsql" Version="8.0.3" /> <PackageReference Include="EFCore.NamingConventions" Version="8.0.3" /> 主项目引用数据库项目 构建时,我最终得到 Microsoft.EntityFrameworkCore.Relational 8.0。4 问题是应用程序在 Visual 中崩溃并出现错误 Could not load file or assembly 'Microsoft.EntityFrameworkCore.Relational, Version=8.0.5 我了解 nuget 决议 Npgsql.EntityFrameworkCore.PostgreSQL 需要 EF Core & Relational >= 8.0.4 然后我将 Core 强制为 8.0.5,以便它保持 Relational 为 8.0.4 我也明白仅强制其中一个依赖项是错误的,我应该将两者都指定为 8.0.5(我之后这样做了) 我不明白的是为什么运行时崩溃并出现错误,提示它需要关系 8.0.5 ?为什么不尝试使用 8.0.4 ? 问题 您指定了 Microsoft.EntityFrameworkCore 版本 8.0.5,但 PostgreSQL 包尝试引入 Microsoft.EntityFrameworkCore.Relational 版本 8.0.4 作为其依赖项。 解决方案 修改您的项目文件以确保版本正确: <Project Sdk="Microsoft.NET.Sdk"> <PropertyGroup> <TargetFramework>net6.0</TargetFramework> </PropertyGroup> <ItemGroup> <PackageReference Include="Microsoft.EntityFrameworkCore" Version="8.0.5" /> <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="8.0.5"> <PrivateAssets>all</PrivateAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> </PackageReference> <PackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="8.0.5" /> <PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="8.0.4" /> <PackageReference Include="Npgsql" Version="8.0.3" /> <PackageReference Include="EFCore.NamingConventions" Version="8.0.3" /> </ItemGroup> </Project> 之后清理并重建。 如果它仍然无法正常工作,我将验证 Nuget 缓存 (dotnet nuget locals all --clear)。

回答 1 投票 0

导航属性返回的 EF Core 查询限制值

我正在构建一个查询,然后再运行它并尝试在导航属性上搜索某些内容。我可以做到这一点,但 EF Core 返回该导航属性中的所有内容,当我想要...

回答 1 投票 0

如何修改 EF Core 查询以包含数组转换

问题陈述: 我正在使用 Entity Framework (EF) Core 和 PostgreSQL。在我的目标表中,有一个可能包含版本号的 JSONB 列。我的目标是按此版本对查询进行排序

回答 2 投票 0

意外/未知的 EF Core 命令失败

我有一个 .net core 应用程序,每当系统发生错误时,它都会使用 Serilog 电子邮件接收器向我发送电子邮件。 最近的错误电子邮件有点神秘,我知道是 EF,我无法准确地弄清楚...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.