考虑一下:
var query = from r in this._db.Recipes
where r.RecipesID == recipeID
select new { r.RecipesID, r.RecipesName };
如何在不使用for循环的情况下在query
对象中获取单个列?
基本上:如何将DataTable.Rows[0]["ColumnName"]
翻译成Linq语法?
答案 0 :(得分:2)
目前还不清楚你在寻找什么,因为你的两个样本兼容。
尽我所能,你想要的是:
var rows = query.ToList();
string name = rows[0].RecipesName;
答案 1 :(得分:2)
string name = this._db.Recipes.Single(r => r.RecipesID == recipeID).RecipesName;
答案 2 :(得分:1)
这是解决问题的方法:
DataContext dc = new DataContext();
var recipe = (from r in dc.Recipes
where r.RecipesID == 1
select r).FirstOrDefault();
if (recipe != null)
{
id = recipe.RecipesID;
name = recipe.RecipesName;
}
答案 3 :(得分:0)
抱歉,误解了你的问题。正如其他人所说,你可以使用ToList()来获取List。如果你需要的只是第一个,只需使用:
query.First().ColumnName
或者如果你想避免空列表上的异常:
var obj = query.FirstOrDefault();
if (obj != null)
obj.ColumnName;
原始答案(所以评论有意义):
使用Linq to Datasets。基本上会是这样的:
var query = from r in yourTable.AsEnumerable()
select r.Field<string>("ColumnName");