我有一个只包含一列的表 - FolderPath。我可以使用像
这样的代码轻松地从这个表中获取一个项目var item = from c in db.Table<Profile>() where c.FolderPath == "C:\\" select c;
但是如何在表格中获得这个项目的数量(一行的数量)?是否可以在不添加其他列的情况下使用&#34; Id&#34;?
答案 0 :(得分:0)
您可以执行以下操作:但您无法确定index
,因为没有orderby的Select
会导致不确定的订单。
var itemWithIndex = db.Table<Profile>()
.Select((r, i) => new {Value =r, Index = i})
.FirstOrDefault(r=> r.Value.FolderPath == "C:\\");
if(itemWithIndex != null)
Console.WriteLine(itemWithIndex.Index);
要确定您可以使用OrderBy的顺序:
var itemWithIndex = db.Table<Profile>()
.OrderBy(r=> r.FolderPath)
.Select((r, i) => new {Value =r, Index = i})
.FirstOrDefault(r=> r.Value.FolderPath == "C:\\");
我不确定为什么要避免使用额外的列来指定表中的ID
。可能它是一个更好的选择,因为即使在添加或更新记录的情况下,这也将保持相同。