NET Team LINQ ADO NET Entity Framework Stefan
- Slides: 10
. NET Team LINQ & ADO. NET Entity Framework Stefan Dobrev GM Avaxo Ltd. http: //ligaz. blogspot. com
Contents 1. LINQ – general stuff 2. LINQ Providers 3. ADO. NET Entity Framework
LINQ Language Integrated Query
DEMO LINQ in Action
What we saw? Query expressions var func = from l in Programming. Language. Get. All() where l. Paradigm. Has. Value(Functional) select l; Local variable type inference var func = Programming. Language. Get. All(). Where(l => l. Paradigm. Has. Value(Functional)). Select(l => l); Extension methods Lambda expressions Expression Trees
Local Variable Type Inference int i = 5; string s = "Hello"; double d = 1. 0; int[] numbers = new int[] {1, 2, 3}; Dictionary<int, Order> orders = new Dictionary<int, Order>(); var i = 5; var s = "Hello"; var d = 1. 0; var numbers = new int[] {1, 2, 3}; var orders = new Dictionary<int, Order>(); Compiler infers the correct type from the right side
Extension Methods obj. Foo(x, y) namespace ITBoxing { XXX. Foo(obj, x, y) public static class Extensions { Extension Method } } public static string Has. Value( this Programming. Paradigm paradigm, Programming. Paradigm value ) { return ( paradigm & value ) != 0 } using ITBoxing Intelli. Sense Bring extensions into scope Programming. Paradigm paradigm = Functional & Imperative; Paradigm. Has. Value(Imperative);
Lambda Expressions List<Programming. Language> langs = Programming. Language. Get. All(); List<Programming. Language> cool = langs. Find. All( delegate(Programming. Language l) { return l. Is. Cool; } ); List<Programming. Language> langs = Programming. Language. Get. All(); List<Programming. Language> cool = langs. Find. All(l => l. Is. Cool); Lambda expression
Expression Trees Code as Data public delegate bool Predicate<T>(T item); Expression<Predicate<Programming. Language>> is. Cool = l => l. Is. Cool == true; Parameter. Expression l = Expression. Parameter( typeof(Programming. Language), "l" ); Expression expr = Expression. Equal( Expression. Property(l, typeof(Programming. Language). Get. Property("Is. Cool")), Expression. Constant(true)); Expression<Predicate <Programming. Language>> is. Cool = Expression. Lambda <Predicate<Programming. Language>>(expr, l);
LINQ & ADO. NET Entity Framework Questions?