各位版上的前辈们好
遇到一个瓶颈想请教一下各位大大
大致上的情况是
我有个Service已经成功取出我要的资料 但在筛选的时候出了问题
注解:A Table == 总表 == Taiwan
B Table == 关联资料表 == Taiwan下的 Taipei
section == Taipei 的区域字段 == 在Code中是public Enum
我的目标:
1.新店区所有记录 费用加总 大安区所有记录 费用加总
2.台北区所有费用加总
我的Code大概长这样:
取出资料后
foreach (var m in viewModel.Taiwan)
{
if(m.Taipei !=null) //Taipei是关联的资料表
{
if(m.Taipei.FirstOrDefault().section.Tostring().Equals("HsinTien"))
//因为是Enum所以需要Tostring()
{
Money1 = 0 ;
Money1 += Convert.ToInt32(m.section.FirstOrDefault().Price)
//将Taipei中,记录为"新店区"的费用都加进来
}
if(m.Taipei.FirstOrDefault().section.Tostring().Equals("TaAn"))
{
Money2 = 0 ;
Money2 += Convert.ToInt32(m.section.FirstOrDefault().Price)
}
}
//最后再去做各区费用加总
//在SQL的Table中 HsinTien或TaAn或其他区域的记录会有不止一笔 即重复值
}
目前遇到的情况是
在取得子资料表(Taipei)时,监看式内呈现的资料都正确
像是新店区共3笔 大安区共5笔之类
但在进一步筛选时就爆炸了 目前下中断点 发现问题出在我使用了
FirstOrDefault这个方法,所以导致他只会取得第一笔资料
后面第二笔新店 第二笔大安等重复的资料以及判断式内 该区域的Price就不会累加进来
有查了许多方法,但不知道除了FirstOrDefault LastOrDefault SingleOrDefault等
取得单项的方法之外 有没有哪个方法 或是关键字可以让我取到所有资料的呢?
查过elementAt 但这个是指定第几个元素
另外 也有尝试过
直接if(m.Taipei.section.Equals("区域名"))
但m.Taipei.section会显示ICollection<Taipei>未包含section的定义
没办法直接取得section字段
不知道版上的大大们有没有什么推荐的关键字 或是方法
可以让小弟有个方向再找看看解法的呢?
先谢过愿意回复的大大们<_O_>