我们在应用程序中大量使用存储过程,并使用 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 指令或程序集参考?)文件夹\Common\MasterDataRepository.cs 116 28 Omnicx.Data