表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不行。
很奇怪,所以发帖求问,谢谢各位~
------解决方案--------------------------------------------------------
- C# code
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/>"); } }}