EntityRef<T>类用来处理一对多关系中的数据。
///<summary>
///处理EntityRef<T>类型的结果
///</summary>
private void ShowEntityRefInfo()
{
//创建LinqDB数据库上下文的实例
LinqDBDataContext db= new LinqDBDataContext(LinqDBConnectionstring);
//获取所有的订单信息
List<Order>orders = db.Order.ToList();
//显示订单信息
foreach(Order order in orders)
{
Response.Write("Order ID:"+order.ID.Tostring()+",");
Response.Write("Order No;"+order.OrderNo.ToString()+"<br/>");
//获取该订单的用户信息
UserInfo ui=order.UserInfo;
Response.Write("User ID:"+ui.ID.Tostring()+",");Response.Write("Username:"+ui.Username=",");
Response.Write("E-mail;"+ui.Email+"<br/><hr/>");
}
}
输出结果:Order ID;1,Order No;200801190001
User ID;1,Usemame;admin,E-mail;[email protected]
Order ID;2,Order No;200801190002
User ID;1,Usemame;admin,E-mail;[email protected]
Order ID;3,Order No;200801200001
User ID;1,Usemame;admin,E-mail;[email protected]
另外,EntityRef<T>类包含2个属性:Entity和HasLoadedOrAssignedValue.其中,Entity属性可以获取EntityRef<T>类的实例的实体,HasLoadedOrAssignedValue属性表示EntityRef<T>类的实例是否加载或分配关系数据。
protected void OrderButton_Click(object sender,EventArgs e)
{
//创建LinqDB上下文实例
LinqDBDataContext db=new LinqDBDataContext();
//获取所有订单
List<Order>orderLst = db.Order.ToList();
//查询并打印所有订单和用户信息
foreach(Order item in orderLst)
{
Response.Write("order id:"+item.ID+"<br>");
Response.Write("order No:"+item.OrderNo+"<br>");
//用户信息
UserInfo user = item.UserInfo;
Response.Write("user Name:"+user.Username+"<br>");
Response.Write("user Pwd:"+user.Password+"<br>");
}
Response.End()
}