0

我有一个表,其中只包含一列 - FolderPath。我可以使用这样的代码轻松地从该表中获取项目

var item = from c in db.Table<Profile>() where c.FolderPath == "C:\\" select c;

但是如何在一个表中获取这个项目的数量(行数)?是否可以不添加像“Id”这样的附加列?

4

1 回答 1

0

你可以做类似的事情:,但你不能确定,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。可能它是一个更好的选择,因为即使在添加或更新记录的情况下这也将保持不变。

于 2013-05-13T12:04:23.770 回答