110,536
社区成员
发帖
与我相关
我的任务
分享
List<Order> list = 订单表.GroupJoin(订单明细表,a=>a.ID,b=>b.OrderID,(a,b)=>new Order{
OrderID = a.ID,
OrderLists = b.ToList()
}).ToList();
public partial class WX_User
{
public WX_User()
{
}
public int id { get; set; }
public string userName { get; set; }
public string userPwd { get; set; }
//就是这句话
public virtual ICollection<WX_UserAddress> WX_UserAddress { get; set; }
}
public partial class WX_UserAddress
{
public WX_UserAddress()
{
}
public int id { get; set; }
public Nullable<int> uid { get; set; }
//还有这句话
public virtual WX_User WX_User { get; set; }
}
//自己定义一个OrderList集合 而不是用 List<OrderList>
class OrderListCollection : IList,ICollection,IEnumerable{
private int count;
public int Count { get { return count; } }
private OrderList[] m_strOrderList;//一般都是用数组实现List
private Order owner;
public OrderListCollection(Order owner) { this.owner = owner; }
public void Add(OrderList orderList) {//实现Add 接口
if (orderList == null)
throw new ArgumentNullException("orderList cannot be null");
this.EnsureSpace(1);//确认存储空间
orderList.Parent = owner;//这样 OrderList 就有了 一个 Parent AddRange接口中也要
m_strOrderList[this.count++] = subItem;
}
//实现其他接口 AddRange IndexOf .. 等
//确认存储空间
private void EnsureSpace(int elements) {//elements 为需要增长个数
if (m_strOrderList == null)
m_strOrderList = new OrderList[Math.Max(elements, 4)];
else if (elements + this.count > m_strOrderList.Length) {
OrderList[] arrTemp = new OrderList[Math.Max(m_strOrderList.Length * 2, elements + this.count)];
m_strOrderList.CopyTo(arrTemp, 0);
m_strOrderList = arrTemp;
}
}
}
class Order{
//其他属性
//...
private OrderListCollection _OrderLists;
public OrderListCollection OrderLists{//自定义的集合
get{
if(_OrderLists == null) _OrderLists = new OrderListCollection(this);
return _OrderLists;
}
}
}
class OrderList{
private Order _Parent;
public Order Parent{get;set;}
//其他属性
//...
}
//使用的时候
new Order().OrderLists.Add(orderList) 的时候 orderList.Parent自动设置为了 Order