0

代码:

public MVCCreationOptions GetMVCOptions()
    {
        IQueryable<AType> aTypes = _mVDataReadService.GetRecords().AreActive<AType>();

        var creationOptions = new MVCCreationOptions
        {
            ATypes = aTypes.ToList()
        };

        return creationOptions;
    }

我收到错误消息“无法将类型 ' XX.YY.ZZ.Models.IAbc' 转换为类型 ' XX.YY.ZZ.Models.Lookups.Complex.AType'。LINQ to Entities 仅支持转换 EDM 基元或枚举类型。” 在下一行

    var creationOptions = new MVCCreationOptions
    {
        ATypes = aTypes.ToList()
    };
4

2 回答 2

0

实体框架不支持接口(我希望还不支持)。就那么简单。因此,您不能在 linq 查询中包含针对接口的表达式,即使查询的实体实现了它。

您只需将表达式添加到查询中

_mVDataReadService.GetRecords().Where(r => r.IsActive)

您还可GetActiveRecords()以为实现接口的每个实体创建方法。

于 2013-05-20T19:13:07.420 回答
0

首先通过调用 a 执行查询.ToList()

IQueryable<AType> aTypes = _mVDataReadService.GetRecords()
    .ToList()
    .AreActive<AType>();
于 2013-05-16T06:53:34.353 回答