使用linq在对象中存储id,但在gridview中显示名称



如果我的ASP.NET网站中有这样的linq语句:

var abcList =
            (from c in backEnd.GetCList()
             join a in backEnd.GetAList()
                 on c.AId equals d.AId
             join b in backEnd.GetBList()
                 on c.BId equals e.BId 
             orderby c.CId descending
             select new ABC
             {
                 AId = a.AId,
                 BId = b.BId,
                 CId = c.CId,
             }).ToList();

对于对象a和b,还有.AName和b.BName。我想将属性ID保存在对象ABC中,但我希望显示.AName而不是.AId。这可以解决吗?

因此,我希望对象A仅由AId组成,但在GridView中,我希望显示AName,其中c.AId=A.AId。希望不要太混乱。

当然,只需在ABC中为AName添加一个位置,然后将其显示在GridView中。

public class ABC
{
    public int AId { get; set; }
    public string AName { get; set; }
    // other stuff
}
 // in your query
 select new ABC
 {
     AId = a.AId,
     AName = a.AName,
     BId = b.BId,
     CId = c.CId,
 }

如果您将属性分配移动到构造函数,则可以使此代码更干净(IMO):

select new ABC(a, b, c)

相关内容

最新更新