c#数据绑定(5)--LINQ

嶽永鹏/文

本实例以MS AdventureWorks2008Entities数据库为基础,演示了LINQ TO ENTITY、LINQ TO ENTITYSQL和LINQ TO ENTITYCLIENT。

XAML:

 <Grid>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="2*"/>
                <ColumnDefinition Width="8*"/>
            </Grid.ColumnDefinitions>
            <Grid.RowDefinitions>
                <RowDefinition />
                <RowDefinition />
                <RowDefinition  />
            </Grid.RowDefinitions>
            <ListBox Grid.Column="1"  Margin="10" Name="listBox1"  />
            <Button Content="LinqToEntity" Grid.Column="0" Margin="5" Name="button1" Click="button1_Click" />
            <ListBox Grid.Column="1" Grid.Row="1"  Margin="10" Name="listBox2"  />
            <Button Content="LinqToSQL" Grid.Column="0" Grid.Row="1" Margin="5" Name="button2" Click="button2_Click" />
            <ListBox Grid.Column="1" Grid.Row="2"  Margin="10" Name="listBox3"  />
            <Button Content="LinToEnClient" Grid.Column="0" Grid.Row="2" Margin="5" Name="button3" Click="button3_Click"  />
        </Grid>
View Code

Button1  LINQ TO ENTITY

using (var context = new AdventureWorks2008Entities())
            {
                //var people = context.People.Where(c => c.LastName == "King").OrderBy(d => d.FirstName).Select(r => new { r.FirstName,r.LastName}); 
                //var people = context.People.Where(c => c.LastName == "King").OrderBy(c =>c.FirstName).Select(c => new { c.FirstName, c.LastName });
                var people = from per in context.People
                             //join emp in context.Employees on per.BusinessEntityID equals emp.BusinessEntityID
                             where per.LastName == "King"
                             orderby per.FirstName 
                             select new { per.FirstName, per.LastName};
                foreach (var person in people)
                {
                    listBox1.Items.Add(string.Format("{0} \t \t {1} ", person.FirstName, person.LastName));
                }
            }
View Code

Button2 LINQ TO ENTITYSQL

using (var context = new AdventureWorks2008Entities())
            {
                var str = "SELECT VALUE p FROM AdventureWorks2008Entities.People AS p WHERE p.LastName= @LastName Order by p.FirstName";
                //var people = context.CreateQuery<Person>(str);
                var people = new System.Data.Objects.ObjectQuery<Person>(str, context);
                people.Parameters.Add(new System.Data.Objects.ObjectParameter("LastName", "King"));
                foreach (var person in people)
                {
                    listBox2.Items.Add(string.Format("{0} \t \t{1}", person.FirstName, person.LastName));
                }
            }
View Code

Button3 LINQ TO ENTITYCLIENT

var firstName = "";
            var lastName = "";
            using (EntityConnection conn = new EntityConnection("name=AdventureWorks2008Entities"))
            {
                string str = "SELECT p.FirstName, p.LastName FROM AdventureWorks2008Entities.People AS p WHERE p.LastName='King' Order by p.FirstName";
                conn.Open();
                EntityCommand cmd = conn.CreateCommand();
                cmd.CommandText =str;
                using (EntityDataReader rdr = cmd.ExecuteReader(System.Data.CommandBehavior.SequentialAccess))
                {
                    while (rdr.Read())
                    {
                        firstName = rdr.GetString(0);
                        lastName = rdr.GetString(1);
                        listBox3.Items.Add(string.Format("{0}\t \t{1}", firstName, lastName));
                    }
                }
                conn.Close();
            }
        }
View Code

 

posted @ 2014-03-05 22:13  碧风Befeng  阅读(393)  评论(0编辑  收藏  举报