我有以下代碼來查詢的EntityContext(通過庫)並將其映射對一個DTO:調用內部的IQueryable的選擇DTO翻譯
public class QueryQuestionsConsumer : IConsumerOf<QueryQuestionsRequest>
{
public void Consume(QueryQuestionsRequest request)
{
var repo = IoC.Resolve<IUnitOfWork>().CreateRepository<Question>();
var filter = FilterTranslator.CreateFilterExpression<Question>(request.Filters);
var questions = repo
.GetAll()
.Where(filter)
Result = questions.Select(question => QuestionTranslator.ToDTO(question)).ToArray()
}
}
這顯然會失敗,因爲ToDTO()不是在EntityFramework提供者中被識別的功能。我可以使用對象初始值設定項創建一個DTO對象,但我想將它委託給另一個類(QuestionTranslator)。
你在這種情況下做什麼?
更新: 此外,我不想水合一個完整的問題對象來做到這一點。我想指望提供者創建DTO對象的能力。
簡單而快速。無法要求更多。 – 2011-02-18 11:07:42
如果您的查詢尚未評估,則可能會導致發生異常,並且提供程序不支持實例化新對象。 – smartcaveman 2011-02-18 15:12:25
@smartcaveman他表示他正在使用EF,這是。 – 2011-02-18 15:16:34