gpt4 book ai didi

c# - 为什么这个 LinQ 查询不喜欢字符?

转载 作者:行者123 更新时间:2023-11-30 20:01:23 25 4
gpt4 key购买 nike

我有一个 LINQ 查询,它获取它需要的所有数据并将其整合到一个数据传输对象中,一切正常,除了当我将 DTO 的一个成员(它是一个 char)设置为一个 char 值时它抛出查询异常...

An unhandled exception of type 'System.ServiceModel.FaultException'occurred in mscorlib.dll

Unable to create a constant value of type 'System.Char'. Only primitive types or enumeration types are supported in this context.

请参阅下面的简化查询:

var result = (from c in db.Foster_Carers
where c.foster_carer_id == id
join fc in db.Individual_Carers on c.first_carer_id equals fc.individual_carer_id
select new FosterCarerPersonalInfoDTO
{
carer_title = fc.title,
carer_forenames = fc.forename,
carer_surname = fc.surname,
carer_gender = 'm'
}).SingleOrDefault();

将性别设置为 'm' 是行不通的,语法上没问题,只是在执行查询时不行!可能是什么问题?

最佳答案

这是 EF 的限制,因为 char 不是原始类型,请参阅 answer有关原因的更多详细信息。限制本身也是 documented .

我建议您只使用 string

关于c# - 为什么这个 LinQ 查询不喜欢字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19025665/

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