Include operators-
[Description("Load OrderDetails with Orders ")]
public void LinqToEntities94() {
var query0 = _em1.Orders.Include("OrderDetails")
.Where(c => c.Customer.Address.City == "London").Select(o => o);
var query1 = query0.OrderBy(o => o.OrderID);
var r1 = query1.ToList();
var o1 = query1.First();
var count1 = o1.OrderDetails.Count();
Assert.IsTrue(count1 == 2);
}
[Description("Load OrderDetails and Products with Orders ")]
public void LinqToEntities95() {
var query = _em1.Orders
.Include("OrderDetails")
.Include("OrderDetails.Product")
.Take(3).Select(o => o);
var query2 = query.OrderByDescending(o => o.OrderID);
var r2 = query2.ToList();
var p = r2.First().OrderDetails.First().Product;
Assert.IsNotNull(p);
Assert.IsFalse(p.EntityAspect.IsNullOrPendingEntity);
}
class MyClass {
public static decimal Val = 50;
public decimal GetVal() {
return MyClass.Val;
}
}
Closures
[Description("Uses a local variable as a query parameter.")]
public void LinqToEntities91() {
MyClass c = new MyClass();
var query = _em1.Orders
.Where(o => o.Freight > MyClass.Val).Select(o => o);
Assert.IsTrue(query.Count() == 360);
}
[Description("Uses a the value of the local variable at query execution time.")]
public void LinqToEntities92() {
decimal x = 50;
var query = _em1.Orders.Where(o => o.Freight > x).Select(o => new { o.Freight, o });
Assert.IsTrue(query.Count() == 360);
x = 100;
Assert.IsTrue(query.Count() == 187);
}
[Description("Load OrderDetails with Orders ")]
public void LinqToEntities94() {
var query0 = _em1.Orders.Include("OrderDetails")
.Where(c => c.Customer.Address.City == "London").Select(o => o);
var query1 = query0.OrderBy(o => o.OrderID);
var r1 = query1.ToList();
var o1 = query1.First();
var count1 = o1.OrderDetails.Count();
Assert.IsTrue(count1 == 2);
}
[Description("Load OrderDetails and Products with Orders ")]
public void LinqToEntities95() {
var query = _em1.Orders
.Include("OrderDetails")
.Include("OrderDetails.Product")
.Take(3).Select(o => o);
var query2 = query.OrderByDescending(o => o.OrderID);
var r2 = query2.ToList();
var p = r2.First().OrderDetails.First().Product;
Assert.IsNotNull(p);
Assert.IsFalse(p.EntityAspect.IsNullOrPendingEntity);
}
class MyClass {
public static decimal Val = 50;
public decimal GetVal() {
return MyClass.Val;
}
}
Closures
[Description("Uses a local variable as a query parameter.")]
public void LinqToEntities91() {
MyClass c = new MyClass();
var query = _em1.Orders
.Where(o => o.Freight > MyClass.Val).Select(o => o);
Assert.IsTrue(query.Count() == 360);
}
[Description("Uses a the value of the local variable at query execution time.")]
public void LinqToEntities92() {
decimal x = 50;
var query = _em1.Orders.Where(o => o.Freight > x).Select(o => new { o.Freight, o });
Assert.IsTrue(query.Count() == 360);
x = 100;
Assert.IsTrue(query.Count() == 187);
}
No comments:
Post a Comment