我调用了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 =
行上会抛出实际异常。
有人可以给我一些指导吗?
答案 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;