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将不会将实体设置为分离状态,从而确保后续数据操作的正确性。

相关内容

热门资讯

总算了解!聚星扑克有没有挂,德... 总算了解!聚星扑克有没有挂,德州之星辅助挂,新版2025教程(原先存在有挂)您好,德州之星辅助挂,确...
分享个大家!微扑克软件的规律,... 分享个大家!微扑克软件的规律,德扑起手牌胜率图,必备教程(起初是有挂)1、超多福利:超高返利,海量正...
玩家必看科普!德扑计算胜率软件... 玩家必看科普!德扑计算胜率软件,wepoke辅助插件,教你攻略(其实是真的有挂);无聊就玩这款wep...
总算了解!哈糖大菠萝有辅助吗,... 总算了解!哈糖大菠萝有辅助吗,aapoker辅助工具存在,AI教程(本来是真的有挂)1、不需要AI权...
最新通报!weopke真的吗,... 最新通报!weopke真的吗,德扑之星作弊,可靠教程(原来真的是有挂)1.德扑之星作弊 ai辅助创建...
推荐攻略!微扑克怎么在软件内设... 推荐攻略!微扑克怎么在软件内设置,智星德州菠萝有挂吗,可靠技巧(先前存在有挂)您好,智星德州菠萝有挂...
一分钟教会你!德州线上扑克辅助... 一分钟教会你!德州线上扑克辅助工具app,德扑之星有作弊,总结教程(本然真的是有挂);是一款可以让一...
终于知道!fishpoker ... 终于知道!fishpoker app辅助,德扑数据软件,黑科技教程(果然是真的有挂)1、德扑数据软件...
重大通报!德州之星辅助怎么用,... 您好,微扑克辅助器ios这款游戏可以开挂的,确实是有挂的,需要了解加微【136704302】很多玩家...
总算了解!微扑克ai辅助会封号... 总算了解!微扑克ai辅助会封号吗,wpk提高胜率,线上教程(其实真的有挂)1、构建自己的微扑克辅助插...