gpt4 book ai didi

c# - 如何在 AutoMapper 中映射阴影属性

转载 作者:行者123 更新时间:2023-12-04 13:12:19 25 4
gpt4 key购买 nike

我使用影子属性通过在 OnModelCreating 方法中迭代它们将特定属性注入(inject)许多实体。

protected override void OnModelCreating(ModelBuilder builder)
{
foreach (var entityType in builder.Model.GetEntityTypes())
{
// Configure LastModified, ModifiedBy on all entities
builder.Entity(entityType.Name).Property<DateTimeOffset>("LastModified").HasDefaultValueSql("now()");
builder.Entity(entityType.Name).Property<string>("ModifiedBy");

// Configure IsActive on entities with SoftDelete Attribute
if (Attribute.IsDefined(entityType.ClrType, typeof(SoftDeleteAttribute)))
{
builder.Entity(entityType.Name).Property<bool?>("IsActive").HasDefaultValue(true);
}
}
}

我正在使用 AutoMapper 将我的实体映射到 DTO/模型。问题是它在我的实体类中看不到这个动态创建的属性。

我尝试了 MapAtRuntime() 方法,并尝试使用以下方法:

.ForMember(m => m.IsActive, m => m.MapFrom("IsActive"))

然而,它要么在第一种情况下不映射,要么在第二种情况下会抛出在类中找不到该属性的异常。

我尝试了下期的解决方案,还是不行! enter link description here

给出“错误映射类型”。异常。

如有任何想法,我们将不胜感激。

最佳答案

对于阴影属性,您可以使用 Automapper 使用以下内容:

.ForMember(m => m.IsActive, m => m.MapFrom(src => EF.Property<bool?>(src, "IsActive"))

关于c# - 如何在 AutoMapper 中映射阴影属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63858314/

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