迁移到 .NET 9 后,我在 Select 语句中遇到 `string.Join` 问题

问题描述 投票:0回答:1

以前,当我使用 .NET 8 时,我可以在

String.Join
语句中使用
Select
来表示
IQueryable
,如以下代码所示:

var receiveTransactions = await repository.Context.Set<ReceiveTransaction>()
    .Select(x => new ThirdPartyTransactionReportModel
    {
        Date = x.Created,
        Customer = string.Join(" - ", x.CustomerIdentity.Customer.Name, x.CustomerIdentity.Customer.Type, x.CustomerIdentity.Customer.Nationality.Name),
    })
    .ToListAsync();

但是,升级到.NET 9后,我遇到了错误:

表达式树不能包含引用结构或受限类型“ReadOnlySpan”的值。

Error

请向我提供任何解决方案或替代方案来解决此问题。

string select entity-framework-core iqueryable .net-9.0
1个回答
0
投票

这是一个已知问题,有几个相关提及:

要解决此问题,请尝试显式指定数组重载变体:

var receiveTransactions = await repository.Context.Set<ReceiveTransaction>()
    .Select(x => new ThirdPartyTransactionReportModel
    {
        Date = x.Created,
        Customer = string.Join(" - ", new[] { x.CustomerIdentity.Customer.Name, x.CustomerIdentity.Customer.Type, x.CustomerIdentity.Customer.Nationality.Name }),
    })
    .ToListAsync();
© www.soinside.com 2019 - 2024. All rights reserved.