C# 将LINQ查询对象存储为整数

C# 将LINQ查询对象存储为整数,c#,asp.net,linq,linq-to-sql,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

我有一个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
                         };
这是一个工作正常的产品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?谢谢大家!

tr是一个集合。您必须调用tr.FirstOrDefault.Product\u ID。

我会将linq查询更改为仅选择s.Product\u ID,而不是选择新建包含该ID的新匿名对象

 var tr = from s in dt.PlanMasters
          where s.PlanName == productName
          select s.Product_ID;
然后,您的第二个代码块可以是ev.Product_ID=tr.First


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

var tr = (
    from s in dt.PlanMasters
    where s.PlanName == productName
    select s.Product_ID).First();
或者更明确地说,国际海事组织:

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

ev.Product\U ID=tr.First.Product\U ID

我相信第二个仍然需要给SelectNope打电话。First可以接受一个委托,以便返回计算结果为true的第一条记录。这不起作用-tr是一个IQueryable而不是一个数字-您必须使用,即tr。Single假设只有一个-否则查询有缺陷。或tr。First。。。我猜我没有刷新页面-第一个版本中没有
var tr = dt.PlanMasters.First(s => s.PlanName == productName).Product_ID;