【问题标题】:Dynamic Linq Select concatenation动态 Linq 选择连接
【发布时间】:2010-10-14 12:38:12
【问题描述】:

因此我有一个动态选择语句:

"new(PurchaseOrderID as ID_PK, PContractNo + GoodsSupplier.AssociatedTo.DisplayName as Search_Results)"

可以看出,我希望将“PContractNo”和“GoodsSupplier.AssociatedTo.DisplayName”字段连接到一个名为“Search_Results”的返回字段中。将这两个字段结合起来很重要。

但是,Linq 库抱怨“+”,表达式解析器将其返回为“Concat(etc...)”,当然不能将其转换为存储表达式。

因此,很明显,我想要一些关于我应该如何格式化选择字符串以便做我想做的事情的帮助。我已经尝试了很多东西!

任何帮助将不胜感激!

谢谢你,伊恩·麦克

【问题讨论】:

  • 这听起来很愚蠢,尝试在两个字段之间添加一个 + "" +。也许你的连接是括号?
  • 很遗憾没有!我之前也尝试过括号选项,但无济于事。只是为了确认我没有尝试做一些“标准”LINQ 无法完成的事情,以下工作正常:select new { ID_PK = o.PurchaseOrderID, Search_Results = o.POrderNo + " : " + o.GoodsSupplier .AssociatedTo.DisplayName }

标签: linq select dynamic lambda new-operator


【解决方案1】:

像这样创建一个新类

public class A
{
    public String k;
    public String v;

}

并使用 linq 加入

res = from a in list
select new A
{
  k = a.Key,
  v = String.Concat(a.Key,a.Value)
};

【讨论】:

    猜你喜欢
    • 2013-05-07
    • 2015-08-08
    • 2016-08-27
    • 1970-01-01
    • 2012-11-03
    • 2013-12-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多