gpt4 book ai didi

.net - LINQ : Generics with IQueryable

转载 作者:行者123 更新时间:2023-12-04 18:49:28 25 4
gpt4 key购买 nike

我必须向我的 C#.NET 应用程序添加一些“查找”查询。基本上,会有很多表都具有相同的模式,但包含不同的值。

我面临一遍又一遍地编写相同的代码(应该是一种 OO 方式来做到这一点..)

[编辑 - 下面被修改以显示更完整的信息]
无论如何,我想做的是:

public List<GenericLookupE>         GetLookupItems( string what )
{
// create db thing
if ( "regions" == what ) return FetchLookup( db.lkRegions.AsQueryable() );
if ( "partners" == what ) return FetchLookup( db.lkPartners.AsQueryable() );
if ( "funders" == what ) return FetchLookup( db.lkFunders.AsQueryable() );

return null; // or something more intelligent than that =)
}


private List<GenericLookupE> FetchLookup<T>( IQueryable<T> lookup )
{
return lookup.OrderBy( p => p.Sequence ).Select
( p => new GenericLookupE()
{
ID = p.ID
,Label = p.Label
,StateCode = p.StateCode
,Sequence = p.Sequence
}
).ToList();
}

当然,问题是编译器不知道 'p => p.Sequence' 是什么。
有任何想法吗?

谢谢你们。

最佳答案

泛型的类型约束是你的 friend 。使用包含 Sequence 的基本类型或接口(interface):

where T : IMyBaseInterface

http://msdn.microsoft.com/en-us/library/bb384067.aspx

关于.net - LINQ : Generics with IQueryable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8523677/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com