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

嶽永鹏/文

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

XAML:

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

 <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

 

你可能感兴趣的:(LINQ)