关于lambda表达式中group join的问题

落阳 2012-06-27 06:06:08
表A:AID,NAME,TYPEID

表B:BID,NAME


假设表A和表B对应的实体分别为EA和EB,实体类中没有设置外键。
现要查询A.*,B.NAME AS TYPENAME

EA.GroupJoin(
EB,
u => u.TYPEID,
ui => ui.BID,
(u, ui) => new { u, ui }).Select(o => o)

请问红字部分该怎么写?只查询目标字段,多的字段不要。

因为自己在尝试的过程中发现,u.AID,u.NAME,u.TYPEID,是没问题的,但是ui.NAME不行。
很奇怪,所以发帖求问,谢谢各位~
...全文
321 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
licai1210 2012-06-27
  • 打赏
  • 举报
回复
public partial class _Default : System.Web.UI.Page
{
public class A
{
public string AID { get; set; }
public string Name { get; set; }
public string TypeId { get; set; }
}

public class B
{
public string BID { get; set; }
public string Name { get; set; }
}

protected void Page_Load(object sender, EventArgs e)
{
List<A> listA = new List<A>();
listA.Add(new A { AID = "1", Name = "一号", TypeId = "1" });
listA.Add(new A { AID = "2", Name = "二号", TypeId = "2" });
listA.Add(new A { AID = "3", Name = "三号", TypeId = "3" });

List<B> listB = new List<B>();
listB.Add(new B { BID = "1", Name = "B一号" });
listB.Add(new B { BID = "2", Name = "B二号" });

var results = listA.GroupJoin(listB, a => a.TypeId, b => b.BID, (a, b) => new
{
a,
BID = b.Max(o => o.BID),
Name = b.Max(o => o.Name)
}).Select(o => new
{
AID = o.a.AID,
AName = o.a.Name,
TypeId = o.a.TypeId,
BID = o.BID,
BName = o.Name
});

foreach (var item in results)
{
Response.Write(item.AID);
Response.Write(" ");
Response.Write(item.AName);
Response.Write(" ");
Response.Write(item.TypeId);
Response.Write(" ");
Response.Write(item.BID);
Response.Write(" ");
Response.Write(item.BName);
Response.Write("<br/>");
}
}
}

62,047

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧