2016-11-29 53 views
1

控制器我如何使用选择方法多个属性具有相同的属性名称

public JsonResult GetFee(int? Class_Id) 
{ 
    var list = Repository.FeeRepository.GetAll() 
     .Where(i => i.Class_Id == Class_Id) 
     .Select(x => new {x.tbl_SchoolProfile.Name, x.tbl_Classes.Name, x.tbl_FeeHead.Name, x.Amount}) 
     .ToList(); 
    return Json(list,JsonRequestBehavior.AllowGet); 
} 

我有问题,访问其他表的字段,它是tbl_Classes,tbl_FeeHead是在FeeRepository此费用表连接.GetAll()我从tbl_fee中选择所有的数据它给编译错误(一个匿名类型不能有多个同名的属性)所以我该如何解决这个错误?

+3

给属性名称 - '。选择(X =>新的{名称1 = x.tbl_SchoolProfile.Name,名称2 = x.tbl_Classes.Name,.... })' –

回答

4

您需要在匿名对象创建表达式中指定所需的名称,例如

.Select(x => new { 
    SchoolName = x.tbl_SchoolProfile.Name, 
    ClassName = x.tbl_Classes.Name, 
    FeeHeadName = x.tbl_FeeHead.Name, 
    x.Amount 
}) 

只能离开出了名的,如果编译器会推断你分配值是正确的,例如

new { Foo = x.Foo, Bar = y.Bar } 

相当于

new { x.Foo, y.Bar } 
+0

@FaisalShahab:对不起,我的*信息不足以帮助你。我们不知道你如何显示数据,“它显示未定义”是表达错误的一种非常模糊的方式。我建议你在做适当的研究后再问一个新问题。 –

+0

感谢它为我工作 –

相关问题