我正在使用 LinqKIT 的 .AsExpandable() 扩展来动态生成 Where 表达式。
例如,
Expression<Func<Asset, bool>> assetNamePredicate = m => m.AssetName == "abc";
Expression<Func<Asset, bool>> assetPurchaseDateFromPredicate = m => m.PurchaseDate > DateTime.Now.AddDays(-10);
Expression<Func<Asset, bool>> whereExpression = t => assetNamePredicate.Invoke(t) && assetPurchaseDateFromPredicate.Invoke(t);
return new entitiesContainer().Set<Asset>().AsExpandable().Where(whereExpression).ToList<Asset>();
现在 Asset 实体包含 AssetTypeID,它具有 AssetType 表的 ID 字段的外键。但是当我尝试编写 Include 语句以在结果集中包含 AssetType 时,它不起作用,并且每个 Asset 实体的 AssetType 属性始终为空......但是,如果我不使用 .AsExpandable ,同样的事情也可以正常工作() 延期。
关于我们如何使用 AsExpandable() 扩展结果集来加载相关实体的任何想法。
PS - 我的场景比我提供的示例代码有点复杂,所以我不能避免使用这个扩展。