我有一个方法返回Iqueryable结果,但结果是基于if else条件,如果条件满足那么我将使用“AssetDetails”类对象,否则为“UserandClientdetails”对象。 下面是代码:运行时Iqueryable的类型
private IQueryable<?> GetAssetDetails(ShareViewModel item)
{
...
if (type == "Video")
{
if (type == "Video")
{
return from meta in my.Assets().OfType<Model.Video>()
join content in my.Contents() on meta.ContentId equals content.ID
join channel in my.Channels() on content.ChannelId equals channel.ID
where meta.ID == item.ID
select new AssetDetails
{
ContentTitle = content.Title,
ChannelName = channel.ChannelName,
...
};
}
else
{ return from meta in my.Assets().OfType<Model.Client>()
join country in db.Countries on meta.ResellerCountry equals country.ID
where meta.ID == item.ID
select new UserAndClientDetails
{
Name = meta.ResellerName,
UserName = meta.ResellerEmail,
..
};}
那么如何在运行时决定Iqueyable的类型在这里?
将实体框架排除在图片之外。如果你有一条采用两条路径返回完全不同的东西的方法,你会怎么做? – Dismissile
您可以尝试简单地返回'IQueryable'而不是泛型'IQueryable <>'。 –