[WebApi]返回动态列表dynamic
Posted 厦门德仔
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[WebApi]返回动态列表dynamic相关的知识,希望对你有一定的参考价值。
返回动态列表dynamic
今天在做接口的时候,在多个账套中存在结构相同的实体
如果在ActionResult<IEnumerable<实体>> 定义实体类型,在不同数据库的实体提示无法转换问题如何解决?
C#提供了动态类型关键字
public ActionResult<IEnumerable<dynamic>> PostPurchaseByItemVendor(string company, List<string> item, string vendor)
if (!string.IsNullOrEmpty(company))
if (company.ToUpper() == "ZE")
EFCoreZEDbContext Context = new EFCoreZEDbContext();
Context.ChangeTracker.QueryTrackingBehavior = QueryTrackingBehavior.NoTracking;
var purth = from u in Context.Purtgs
from t in Context.Purths
where u.Tg001 == t.Th001 && u.Tg002 == t.Th002
&& (item.Contains(t.Th004)) && (u.Tg005 == vendor)
select new t.Th004, t.Th007 ;
var groupList = purth.GroupBy(m => new m.Th004 ).
Select(a => new
item = a.Key.Th004.Trim(),
qty = a.Sum(c => c.Th007)
).ToList();
return groupList.ToList();
if (company.ToUpper() == "ZM")
EFCoreZMDbContext Context = new EFCoreZMDbContext();
Context.ChangeTracker.QueryTrackingBehavior = QueryTrackingBehavior.NoTracking;
var purth = from u in Context.Purtgs
from t in Context.Purths
where u.Tg001 == t.Th001 && u.Tg002 == t.Th002
&& (item.Contains(t.Th004)) && (u.Tg005 == vendor)
select new t.Th004, t.Th007 ;
var groupList = purth.GroupBy(m => new m.Th004 ).
Select(a => new
item = a.Key.Th004.Trim(),
qty = a.Sum(c => c.Th007)
).ToList();
return groupList.ToList();
if (company.ToUpper() == "ZR")
EFCoreZRDbContext Context = new EFCoreZRDbContext();
Context.ChangeTracker.QueryTrackingBehavior = QueryTrackingBehavior.NoTracking;
var purth = from u in Context.Purtgs
from t in Context.Purths
where u.Tg001 == t.Th001 && u.Tg002 == t.Th002
&& (item.Contains(t.Th004)) && (u.Tg005 == vendor)
select new t.Th004, t.Th007 ;
var groupList = purth.GroupBy(m => new m.Th004 ).
Select(a => new
item = a.Key.Th004.Trim(),
qty = a.Sum(c => c.Th007)
).ToList();
return groupList.ToList();
return null;
测试:
以上是关于[WebApi]返回动态列表dynamic的主要内容,如果未能解决你的问题,请参考以下文章
Dynamics CRM 2015/2016新特性之二十四:使用Web API执行操作
我可以使用 VBA 函数将可接受值的(动态)列表返回到 Excel 的数据验证中吗?