Simple.Data选择特定列

时间:2013-01-31 22:01:30

标签: select simple.data

我调用了Simple.Data,我想限制被带回的列。但是我遇到了问题..

这很好用:

var db = Database.Open();

var questionIdRow = db.Question.FindByFriendlyId(friendlyId);

if (questionIdRow == null) return Guid.Empty;

return questionIdRow.QuestionId;

但是,以下操作不起作用(我找不到Simple.Data.UnresolvableObjectException'列')

var db = Database.Open();

var questionIdRow = db.Question.FindByFriendlyId(friendlyId)
                               .Select(db.Question.QuestionId);

if (questionIdRow == null) return Guid.Empty;

return questionIdRow.QuestionId;

我受到Simple.Data文档的印象,这就是我需要做的所有限制所选列的操作。请注意,选择只是选择稍后引用的同一列。

var questionIdRow =行上会抛出实际异常。

有人可以给我一些指导吗?

1 个答案:

答案 0 :(得分:1)

这是一个常见问题,实际上导致FindBy在我们达到1.0之前被弃用。问题是FindBy会立即返回一条记录,因此您无法继续在其上调用查询方法。

正确的方法是调用FindAllBy并以First或FirstOrDefault结束:

var db = Database.Open();

var questionIdRow = db.Question.FindAllByFriendlyId(friendlyId)
                           .Select(db.Question.QuestionId)
                           .FirstOrDefault();

if (questionIdRow == null) return Guid.Empty;

return questionIdRow.QuestionId;