我有一个表,其中只包含一列 - FolderPath。我可以使用这样的代码轻松地从该表中获取项目
var item = from c in db.Table<Profile>() where c.FolderPath == "C:\\" select c;
但是如何在一个表中获取这个项目的数量(行数)?是否可以不添加像“Id”这样的附加列?
你可以做类似的事情:,但你不能确定,index
因为Select
没有 orderby 可能会导致不确定的订单。
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
。可能它是一个更好的选择,因为即使在添加或更新记录的情况下这也将保持不变。