在linq查询中合并不同类型的列值

时间:2013-04-12 17:09:25

标签: c# casting linq-to-entities

以下是我如何返回合并两个字符串列的结果:

    context.DBSET.Select(e => e.STRING_PROPERTY + e.STRING_PROPERTY)...

如何在一个字符串结果中合并e.STRING_PROPERTY + e.INTEGER_PROPERTY?

2 个答案:

答案 0 :(得分:1)

您必须使用SqlFunctions.StringConvert将其转换为字符串:

var results = context.DBSET
                     .Select(e => e.STRING_PROPERTY + SqlFunctions.StringConvert((double)e.INTEGER_PROPERTY));

答案 1 :(得分:0)

Linq to Entities和Linq to Sql支持几个C#成员。这些是String.ToString()和DateTime.Now。你可以写:

    context.DBSET.Select(e => e.STRING_PROPERTY + e.INTEGER_PROPERY.ToString())...

正如@Reed指出的那样,SqlFunctions也可以工作,并且会提供一个更通用但不太可读的操作集,可以在你的查询中执行。