在LINQPad4中将查询表达式转换为lambda

在LINQPad4中将查询表达式转换为lambda,linq,linqpad,Linq,Linqpad,在编写代码时,我遇到了一个LINQ查询,我可以用查询语法完成它,但不能用lamda语法。虽然这在应用程序中可以很好地工作,但我想学习我正在尝试做的事情的查询语法 基本上,我有一个包含视图的数据库,CO_Leather_V和CO_LeatherSizeColor_V。我还有两个类,CutingOrder和CutingOrderDetail。CuttingOrderDetail完全包含字符串、int和float属性。CuttingOrder类包含2个字符串属性和一个CuttingOrderDetai

在编写代码时,我遇到了一个LINQ查询,我可以用查询语法完成它,但不能用lamda语法。虽然这在应用程序中可以很好地工作,但我想学习我正在尝试做的事情的查询语法

基本上,我有一个包含视图的数据库,CO_Leather_V和CO_LeatherSizeColor_V。我还有两个类,CutingOrder和CutingOrderDetail。CuttingOrderDetail完全包含字符串、int和float属性。CuttingOrder类包含2个字符串属性和一个CuttingOrderDetails列表

public class CuttingOrder
{
    public string cuttingOrderNo { get; set; }
    public string reserveSalesOrderNo { get; set; }
    public List<CuttingOrderDetail> details { get; set; }
}   

public class CuttingOrderDetail
{
    public string cuttingOrderNo { get; set; }
    public string reserveSalesOrderNo { get; set; }
    public string itemCode { get; set; }
    public string material { get; set; }
    public string color { get; set; }
    public string size { get; set; }
    public int qty { get; set; }
    public float squareFeet { get; set; }
    public float squareFeetUsed { get; set; }
}
我使用以下查询将其转换为在LINQPad中工作,但无法在lambda窗格中显示任何内容

void Main()
{

var p = (from l in CO_Leather_V
        select new CuttingOrder
        {
        cuttingOrderNo = "NOT SET",
        reserveSalesOrderNo = "FAKE_SO_NO",
        details = (
        from d in CO_LeatherSizeColor_V
        select new CuttingOrderDetail
        {
            cuttingOrderNo = d.OrderNo
        }
        ).ToList()
        }).ToList();


p.Dump();

}


// Define other methods and classes here
public class CuttingOrder
{
    public string cuttingOrderNo { get; set; }
    public string reserveSalesOrderNo { get; set; }
    public List<CuttingOrderDetail> details { get; set; }
}   

public class CuttingOrderDetail
{
    public string cuttingOrderNo { get; set; }
    public string reserveSalesOrderNo { get; set; }
    public string itemCode { get; set; }
    public string material { get; set; }
    public string color { get; set; }
    public string size { get; set; }
    public int qty { get; set; }
    public float squareFeet { get; set; }
    public float squareFeetUsed { get; set; }
}
void Main()
{
var p=(从CO_皮革中的l开始)
选择新的切割顺序
{
cuttingOrderNo=“未设置”,
reserveSalesOrderNo=“假冒”,
详情=(
从d到CO_皮革尺寸颜色V
选择新切割或详细信息
{
切割订单号=d.订单号
}
)托利斯先生()
}).ToList();
p、 Dump();
}
//在此处定义其他方法和类
公共类剪接顺序
{
公共字符串剪切Orderno{get;set;}
公共字符串reserveSalesOrderNo{get;set;}
公共列表详细信息{get;set;}
}   
公共类剪报
{
公共字符串剪切Orderno{get;set;}
公共字符串reserveSalesOrderNo{get;set;}
公共字符串itemCode{get;set;}
公共字符串材质{get;set;}
公共字符串颜色{get;set;}
公共字符串大小{get;set;}
公共整数数量{get;set;}
公共浮动平方英尺{get;set;}
公共浮点squareFeetUsed{get;set;}
}
如果有人知道如何以lambda形式执行linq查询,或者知道LINQPad无法生成lamda表单的原因,我们将不胜感激。

这应该可以:

var p = CO_Leather_V.Select(l=> new CuttingOrder
        {
            cuttingOrderNo = "NOT SET",
            reserveSalesOrderNo = "FAKE_SO_NO",
            details = CO_LeatherSizeColor_V.Select(d=>new CuttingOrderDetail  {cuttingOrderNo = d.OrderNo}).ToList()
        }).ToList();
但是,
CO\u LeatherSizeColor\u V
不引用
l
,因此每次都会得到该表中的所有内容。您可能需要以下内容:

            details = l.LeatherSizeColor.Select(d=>new CuttingOrderDetail  {cuttingOrderNo = d.OrderNo}).ToList()
换成那句话

            details = l.LeatherSizeColor.Select(d=>new CuttingOrderDetail  {cuttingOrderNo = d.OrderNo}).ToList()