Cannot return linq result from query
嘿,所以我对
1 2 3 4 5 6 | Severity Code Description Project File Line Suppression State Error CS0266 Cannot implicitly convert type 'System.Linq.IQueryable<<anonymous type: SCSEntities.SCS_ItemCategory Category, SCSEntities.SCS_Item Item>>' to 'System.Collections.Generic.List<SchoolCash.DataFactory.ItemFactory.ExportItemTable>'. An explicit conversion exists (are you missing a cast?) SchoolCash.DataFactory C:\seamysCode\SCA\4.12\Common\SchoolCash.DataFactory\ItemFactory.cs 551 Active |
所以我想知道我是否在这里遗漏了一些东西,因为我所看到的东西说要根据需要创建一个带有get和setter的自定义类型。那我就可以还了。我想知道是否有人能帮助我,因为我有限的眼睛能看到我做的正确。我提前感谢你的帮助。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | public class ExportItemTable { public SCS_ItemCategory Category { get; set; } public Item Item { get; set; } } public List<ExportItemTable> GetItemExportTable() { var result = from item in Context.SCS_Items join category in Context.SCS_ItemCategories on item.ItemPk equals category.ItemFk into temp from category in temp.DefaultIfEmpty() select new { Category = category, Item = item }; return result.ToList();; } |
此代码创建匿名类型:
1 2 3 4 5 |
您只需要创建一个所需类型的实例,如下所示:
1 2 3 4 5 |
在某些语言(如typescript)中,如果有一个对象与预期类型的属性相匹配,编译器会将它们视为相同的东西。C不会这样做,并强制您显式创建要使用的类型的实例。