将LINQ Query对象存储到Integer

时间:2011-04-06 18:39:06

标签: c# asp.net linq linq-to-sql

我有一个LINQ2SQL查询:

 //Pulling the Product_ID from the PlanMaster Table from WebEnroll DB!
                var tr = from s in dt.PlanMasters
                         where s.PlanName == productName
                         select new
                         {
                             s.Product_ID
                         };

这是拉动Product_ID,这是有效的。现在我想将一条记录添加到另一个LINQ语句中:

                CommissionsV2DataContext cv = new CommissionsV2DataContext();
                Entity_Product_Point ev = new Entity_Product_Point();
                ev.Entity_ID = getEntity;
                ev.Product_ID = tr.; ?????

我想将我从tr获取的变量(即Product_ID)存储到ev.Product_ID。

我应该如何将对象转换为INT?谢谢!

4 个答案:

答案 0 :(得分:5)

问题是你的第一个查询返回一个带有整数属性的对象集合,而不是一个整数。您可以将查询更改为:

var tr = (
    from s in dt.PlanMasters
    where s.PlanName == productName
    select s.Product_ID).First();

或者,更清洁,IMO:

var tr = dt.PlanMasters.First(s => s.PlanName == productName).Product_ID;

答案 1 :(得分:3)

tr是一个集合。您必须致电tr.FirstOrDefault().Product_ID

答案 2 :(得分:1)

我会更改你的linq查询,只选择s.Product_ID而不是select new包含ID的新匿名对象。

 var tr = from s in dt.PlanMasters
          where s.PlanName == productName
          select s.Product_ID;

您的第二个代码块可能只是ev.Product_ID = tr.First();

  CommissionsV2DataContext cv = new CommissionsV2DataContext();
  Entity_Product_Point ev = new Entity_Product_Point();
  ev.Entity_ID = getEntity;
  ev.Product_ID = tr.First();

答案 3 :(得分:0)

ev.Product_ID = tr.First()。Product_ID;