为什么这个LinQ查询不像chars?

Sam*_*Sam 2 c# linq linq-to-sql

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

mscorlib.dll中发生了未处理的"System.ServiceModel.FaultException"类型异常

无法创建"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();
Run Code Online (Sandbox Code Playgroud)

将性别设置为'm'只是不起作用,从语法上来说它没关系,只是在执行查询时不行!可能是什么问题?

Jam*_*mes 7

这是EF的限制,因为char它不是原始类型,请参阅此答案以获取有关原因的更多详细信息.限制本身也有记录.

我建议你使用string.