gpt4 book ai didi

c# - 如何忽略所有标记为虚拟的属性

转载 作者:太空狗 更新时间:2023-10-29 18:01:31 24 4
gpt4 key购买 nike

我为 EF 延迟加载的一些属性使用了 virtual 关键字。我有一个案例,在将源映射到目标时,我的模型中标记为 virtual 的所有属性都应该被 AutoMapper 忽略。

是否有一种自动方法可以实现此目的,还是我应该手动忽略每个成员?

最佳答案

您可以创建映射扩展并使用它:

namespace MywebProject.Extensions.Mapping
{
public static class IgnoreVirtualExtensions
{
public static IMappingExpression<TSource, TDestination>
IgnoreAllVirtual<TSource, TDestination>(
this IMappingExpression<TSource, TDestination> expression)
{
var desType = typeof(TDestination);
foreach (var property in desType.GetProperties().Where(p =>
p.GetGetMethod().IsVirtual))
{
expression.ForMember(property.Name, opt => opt.Ignore());
}

return expression;
}
}
}

用法:

Mapper.CreateMap<Source,Destination>().IgnoreAllVirtual();

关于c# - 如何忽略所有标记为虚拟的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24597120/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com