AutoMapper将EFCore实体设置为分离状态
创始人
2024-09-23 13:00:39
0

当使用AutoMapper映射实体时,EF Core实体的状态可能会被设置为分离状态,这可能会影响后续的数据操作。解决方法是使用AutoMapper的提供者来维护实体状态,如下所示:

  1. 首先,在Startup.cs里面添加以下代码:

services.AddAutoMapper( cfg => { cfg.AddProfile(); }, new[] { Assembly.GetExecutingAssembly() } );

  1. 然后,在MyProfile.cs文件中添加以下代码:

using AutoMapper.EquivalencyExpression; using Microsoft.EntityFrameworkCore;

public class MyProfile : Profile { public MyProfile() { CreateMap() .ForMember(dest => dest.EntityState, opt => opt.Ignore()) .EqualityComparison((src, dest) => src.Id == dest.Id) .AfterMap((src, dest, context) => { var dbContext = context.GetService(); dbContext.Entry(dest).State = dest.Id == 0 ? EntityState.Added : EntityState.Modified; }); } }

在上面的例子中,目标实体(Destination)的状态被显式忽略,然后在AfterMap回调方法中,使用AutoMapper的提供者获取数据库上下文(MyDbContext),并设置目标实体状态为“Added”或“Modified”。

这样,AutoMapper将不会将实体设置为分离状态,从而确保后续数据操作的正确性。

相关内容

热门资讯

有了最新消息!aapoker安... 有了最新消息!aapoker安装包怎么使用,聚星ai辅助工具下载,模块教程(有挂功能)-哔哩哔哩1、...
截至目前!wepoker破解器... 截至目前!wepoker破解器有用吗(透视)一贯有挂(有挂总结开挂辅助脚本)-哔哩哔哩1、进入到we...
值得注意的是!哈糖大菠萝开挂,... 值得注意的是!哈糖大菠萝开挂,wepoker辅助器下载,妙招教程(有挂细节)-哔哩哔哩1、许多玩家不...
为切实保障!安装不了wepok... 为切实保障!安装不了wepoker(透视)一直确实有挂(有挂解惑开挂辅助辅助器)-哔哩哔哩1、这是跨...
最新消息!hhpoker免费辅... 最新消息!hhpoker免费辅助器,约局吧透视挂下载,绝活教程(发现有挂)-哔哩哔哩1、最新消息!h...
据了解!hhpoker透视脚本... 据了解!hhpoker透视脚本下载(透视)原来有挂(证实有挂开挂辅助平台)-哔哩哔哩亲,关键说明,h...
据悉!wepoker私人定制透... 据悉!wepoker私人定制透视,wepoker有没有辅助,策略教程(有挂神器)-哔哩哔哩1、许多玩...
昨日!wepoker辅助器安装... 昨日!wepoker辅助器安装包定制(透视)其实真的有挂(有挂教程开挂辅助安装)-哔哩哔哩1、金币登...
于此同时!hhpoker万能辅... 于此同时!hhpoker万能辅助器(透视)一直真的是有挂(有挂教程开挂辅助插件)-哔哩哔哩1、操作简...
据报道!pokemmo手机脚本... 据报道!pokemmo手机脚本,hhpoker是真的假的,绝活教程(真是有挂)-哔哩哔哩1、hhpo...