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

Entity Framework はインターフェイスをサポートしていません (まだサポートされていないことを願っています)。そのような単純な。そのため、クエリ対象のエンティティがそれを実装していても、インターフェイスを対象とする式を linq クエリに含めることはできません。

クエリに式を追加するだけです

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

GetActiveRecords()インターフェイスを実装する各エンティティのようなメソッドを作成することもできます。

于 2013-05-20T19:13:07.420 に答える
0

を呼び出して、最初にクエリを実行します.ToList()

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