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

2023-12-02

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

“System.ServiceModel.FaultException”类型的未处理异常 发生在 mscorlib.dll 中

无法创建“System.Char”类型的常量值。此上下文中仅支持原始类型或枚举类型。

请参阅下面的简化查询:

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有关原因的更多详细信息。本身的局限性也是记录在案.

我建议你只使用string.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么这个 LinQ 查询不喜欢字符? 的相关文章

随机推荐