Asp.net 如何从函数返回泛型列表(T)
我的类中有以下函数,我想将其作为泛型列表返回Asp.net 如何从函数返回泛型列表(T),asp.net,asp.net-mvc,vb.net,Asp.net,Asp.net Mvc,Vb.net,我的类中有以下函数,我想将其作为泛型列表返回 Public Function ProductTitlePrice(Of T)() As List(Of T) Implements IProductRepository.ProductTitlePrice Dim v = (From F In _db.Fstock Where F.GUID = 2 Select F.STK_NAME, F.SELL_PRICE ).ToList Return v
Public Function ProductTitlePrice(Of T)() As List(Of T) Implements IProductRepository.ProductTitlePrice
Dim v = (From F In _db.Fstock Where F.GUID = 2
Select F.STK_NAME, F.SELL_PRICE
).ToList
Return v
End Function
我得到的错误是
Error 2 Value of type 'System.Collections.Generic.List(Of <anonymous type>)' cannot be converted to 'System.Collections.Generic.List(Of T)'.
如何从函数中返回查询,然后在UI层中处理输出。我最终得到了以下解决方案
- Styxxy建议的DTO新项目
- 然后使用UL中的Automapper将DTO映射到我的ViewModels
这是来源:既然你这么做了,你就不能-泛型(
Of t
)不是匿名的!泛型是指在调用时给出参数类型,匿名是指动态创建的一组新数据。编译器无法返回未知类型resp。将未知类型转换为T。如果您想要真正动态,最好的选择可能是某个键/值对,或者如果您要经常使用它,只需创建并填充一个类型化模型。啊哈,那么我如何返回匿名列表?我只想从我的函数返回数据,然后在一个单独的项目中填充我的viewModels。我不认为在这里使用泛型是正确的。您应该定义一个具有STK_NAME和SELL_PRICE属性的模型,并返回该类型的列表。您不能返回匿名类型!如果不想使用DAL,则创建一个类型化的业务层
(作为抽象模型)并使用它。因此,在共享类库中定义DTO(数据传输对象)。使用两个属性(STK_名称和售价)定义DTO,并返回此DTO类型的列表。
var query = from ug in ent.userGroups
join u in ent.Users on ug.OwnerUserId = ug.userID
select new
{
Name = u.UserName,
Id = u.userID
Group = ug.GroupName
};