C#linq2sql选择多个列
本文关键字:选择 C#linq2sql | 更新日期: 2023-09-27 18:22:21
我很难在carCheckouts表中选择多个列。我只想要我知道pk的一行的起始Miles和结束Miles。我的linq陈述正确吗?如果是,我如何在之后将b.startMiles和b.endMiles转换为可用变量?感谢
var m = (from b in db.carCheckouts
where b.pk == primaryKey
select new {b.startMiles, b.endMiles});
您当前的查询返回一个匿名类型的IQueryable
,但听起来您想要一个单个项目:
var m = (from b in db.carCheckouts
where b.pk == primaryKey
select new {b.startMiles, b.endMiles}).Single();
现在您可以使用m
的属性了:
Console.WriteLine("Start Miles:" + m.startMiles);
您已经将m变成了一个匿名类型(实际上m将是该匿名类型的IQueryable<>),可以在其声明的范围内的任何位置使用。添加Anon类型是为了允许这样的事情,所以你不必预先创建一个包含这些值的类型,你可以动态创建类型。
如果你只想有1而不是IQueryable,你可以做.FirstOrDefault或只是.First来给你该anon类型的1实例。
var m = (from b in db.carCheckouts
where b.pk == primaryKey
select new {b.startMiles, b.endMiles});
double totalMiles;
foreach(var item in m)
{
totalMiles = item.endMiles - item.startMiles;
}
您也可以使用
选择新的{b.startMiles,b.endMiles})。FirstOrDefault();
在您的linq语句上