0

アプリケーションでストアド プロシージャをかなり頻繁に使用し、LinqToSql を使用してプロシージャを実行し、DB アクセス メソッドから返される List オブジェクトを設定します。ただし、AutoMapper と明らかに AutoMapper 拡張 Project() を使用して、一部のオブジェクトを別のオブジェクト タイプにマップする必要があります。To には IQuryable が必要ですが、List は IEnumerable を実装しています。

ソースコード:

public List<T> GetRecordsByTable<T>(MasterTables masterTable)
                {
                    var masters = new List<MasterData>();
                    using (_masterContext)
                    {
                        masters = (from o in _masterContext.procGetMasterDataList(masterTable.GetHashCode(), null, null, null, null, null)
                                   select new MasterData
                                   {
                                       Id = (long)o.iId,
                                       Table = (MasterTables)o.TableId,
                                       ItemValue = o.ItemValue,
                                       ItemText = o.ItemText,
                                       ParentItemValue = o.ParentItemValue,
                                       IsActive = o.IsActive,
                                       CustomField1 = o.CustomField1,
                                       CustomField2 = o.CustomField2,
                                       CustomField3 = o.CustomField3,
                                       IsDefault = o.IsDefault

                                   }).ToList();

                    }
                    return masters.All.Project().To<T>;

コンパイルエラー:

System.Collections.Generic.List' には 'Project' の定義が含まれておらず、タイプ 'System.Collections.Generic.List' の最初の引数を受け入れる拡張メソッド 'Project' が見つかりませんでした (using ディレクティブがないか、またはアセンブリ参照?) folder\Common\MasterDataRepository.cs 116 28 Omnicx.Data

4

2 に答える 2

2

masters.AsQuerable().Project().To<T>return ステートメントで使用する必要があります。

于 2015-05-19T21:32:38.627 に答える
1

次の行を追加したとします。

using AutoMapper;
using AutoMapper.QueryableExtensions;
于 2014-06-17T07:41:56.573 に答える