问题标签 [mapster]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
303 浏览

null - 当成员为 IEnumerable 时,有没有办法在使用 Mapster 进行映射期间忽略源中的所有空值

我在EF Core 3.1中使用带有DI的Mapster 5.3.1 ...我有一个问题..当两个成员都是IEnumerable并且都具有相同的结构时,有没有办法在映射期间忽略源成员中的所有空值。

var tSource = (IEnumerable) var tDestination = (IEnumerable)

_mapper.Map(tSource, tDestination)

如果 tSource 有一个空值,我不想在 tDestination 中使用该值。

我希望你们能帮助我。

谢谢

0 投票
1 回答
2080 浏览

linq - 使用 Mapster 调整导航属性

我有一Post堂课,User里面有一个属性。当我尝试获取所有帖子时,我还想将其映射User到一个UserDto对象。

在内部进行调整Include会引发此错误:

Include 中使用的 Lambda 表达式无效

0 投票
2 回答
3038 浏览

c# - 如何使用 Mapster 映射自引用?

我有包含自我参考的项目列表。例如:
型号

视图模型

样本数据

我使用类似的代码来达到预期的效果。但我确定这是错的。我必须在每个新请求之前进行配置。

小提琴
如何映射viewStocks分层?如同

0 投票
1 回答
118 浏览

.net - Mapster 编译时出现 AmbiguousMatchException

当我尝试编译 mapster 配置时,它会AmbiguousMatchException在这个特定的映射中抛出一个:

并且异常不会告知什么是错误的。

在更新到 Mapster 5.0 之前,一切正常。

0 投票
1 回答
344 浏览

mapping - Mapster - 从基类映射后代类

课程:

代码:

如果您运行代码,您将看到 SourceType 和 DestType 不一样。我如何实现它们相同?Mapster 将部门映射为 Department 类(祖先)而不是 DepartmentA 类(后代)。

在此示例中,我知道 emp.Department 中有后代,但在我的应用程序中我不知道。所以这个问题的解决方案必须是通用的。

我试图在 AutoMapper 中解决这个问题。得到了同样的结果。正如@Prolog 在下面写的那样,AutoMapper 正在工作。我更新了主要代码。

如果有人在 Mapster 中解决了问题,我仍然很感兴趣。

0 投票
1 回答
47 浏览

mapster - Mapster 从 ExpandoObject 到 Dto - 如何防止在 Dto 中将缺少的键设置为 Null?

我有一个代表更新的对象:

此属性是 dto 的一部分,例如:

现在,当我映射时,不在源字典中的所有(其他)属性都设置为默认值。

0 投票
0 回答
285 浏览

c# - 使用 Mapster 将一个类属性映射到两个不同的类属性

我有 3 个名为 Employee、EmployeeTwo 和 EmployeeThree 的类,我想将 Employee 映射到 EmployeeTwo 并将 Employee 映射到 EmployeeThree。

以下是课程。我还尝试在 Employee Class 属性上定义 AdaptMember 属性,但它只定义了一个,我必须将它映射到两个不同的属性。

注意:我不能为 EmployeeTwo 和 EmployeeThree 类定义任何属性,因为它来自 API,并且可以重新生成。

任何帮助都非常感谢。

0 投票
1 回答
1032 浏览

c# - Mapster,尝试映射到具有许多没有默认构造函数的类的字段并失败

我正在尝试学习 Mapster。我有这样的课

创建一个配置:

现在,如果我尝试 map 对象-everythink 都可以,但是如果我将第二个构造函数添加到Sub

Mapster throe 运行时异常:

我尝试阅读文档,关于ConstructUsingandMapWith这不是我需要的(或者我做错了什么)。我怎么能做到这一点?

0 投票
0 回答
289 浏览

c# - 如何使用 Mapster 映射 JsonPatchDocument?

我有我的模型:

还有我的 Dto:

我正在使用 Entity Framework 和 JsonPatchDocument 在我的 API 中进行 PATCH 操作,代码如下:

作为输出,我得到以下信息:

我知道问题出在这行代码中:

但我不知道如何更改它以正确地将其映射到所需的类型。你可以帮帮我吗?:)

我知道最后我可能应该再次从 DB 获取成员资格,映射它并返回它,而不是仅仅映射editedMembership,但在处理此映射问题后我会适应它。

0 投票
1 回答
390 浏览

c# - Mapster.Tool 无法生成映射器

Mapster.Tool 无法生成任何代码。
问题似乎是从 CosmosClient 派生的类 - 我从 nuget 包中获得。

我得到这个例外:

找不到库:Microsoft.Azure.Cosmos.Client
未处理的异常。System.Reflection.ReflectionTypeLoadException:无法加载一种或多种请求的类型。
无法加载文件或程序集“Microsoft.Azure.Cosmos.Client,Version=3.16.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35”。该系统找不到指定的文件。
在 System.Reflection.RuntimeModule.GetTypes(RuntimeModule module)
在 System.Reflection.RuntimeModule.GetTypes()
在 System.Reflection.Assembly.GetTypes()
在 Mapster.Tool.Extensions.Scan(CodeGenerationConfig config, Assembly assembly) 在 D 中: \git\Mapster\src\Mapster.Tool\Extensions.cs:第 177 行
位于 D:\git\Mapster\src\Mapster.Tool\Program.cs:第 123 行的 Mapster.Tool.Program.GenerateModels(ModelOptions opt)
在 CommandLine.ParserResultExtensions.WithParsed[T](ParserResult`1 result, Action`1 action)
在 D:\git\Mapster\src\Mapster.Tool\Program 中的 Mapster.Tool.Program.Main(String[] args)。 cs:第 17 行
System.IO.FileNotFoundException:无法加载文件或程序集
“Microsoft.Azure.Cosmos.Client,Version=3.16.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35”。该系统找不到指定的文件。
文件名:'Microsoft.Azure.Cosmos.Client,版本=3.16.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35'

当我禁用 mapster 构建目标时,一切正常。
此外,Microsoft.Azure.Cosmos.Client.dll 存在于目标目录中。

Soooo ..我做错了什么?
我不明白为什么 mapster 无法加载该程序集。
似乎也没有办法让 mapster 忽略该类。

这是代码。

我的 csproj 文件: