<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      使用Entity Framework和WCF Ria Services開發SilverLight之1:簡單模型

      本文目的是通過Silverlight ria service完成一次數據的讀取過程,并且在此基礎上建立測試項目。

      Ria service借助于WCF和ADO.NET Entity Framework構建分布式開發框架。使用它可以快速構建自己的開發模式。

      1:基礎結構

      首先,創建SL APP,如下:

      image

      然后,選擇創建web:

      image

      可以,也可以不勾選enable wcf ria service,如果勾選了,在SL APP中會多幾個DLL的引用,其它沒有任何差別。如圖:

      image

      2:創建一個示例數據庫

      這是一個小而輕型的數據庫,在MDSN的課程中有使用到它。如下:

      SET ANSI_NULLS ON
      GO
      SET QUOTED_IDENTIFIER ON
      GO
      
      USE [master];
      GO
      
      IF EXISTS (SELECT * FROM sys.databases WHERE name = 'School')
      	DROP DATABASE School;
      GO
      
      -- Create the School database.
      CREATE DATABASE School;
      GO
      
      -- Specify a simple recovery model 
      -- to keep the log growth to a minimum.
      ALTER DATABASE School 
      	SET RECOVERY SIMPLE;
      GO
      
      USE School;
      GO
      
      -- Create the Department table.
      IF NOT EXISTS (SELECT * FROM sys.objects 
      		WHERE object_id = OBJECT_ID(N'[dbo].[Department]') 
      		AND type in (N'U'))
      BEGIN
      CREATE TABLE [dbo].[Department](
      	[DepartmentID] [int] NOT NULL,
      	[Name] [nvarchar](50) NOT NULL,
      	[Budget] [money] NOT NULL,
      	[StartDate] [datetime] NOT NULL,
      	[Administrator] [int] NULL,
       CONSTRAINT [PK_Department] PRIMARY KEY CLUSTERED 
      (
      	[DepartmentID] ASC
      )WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
      ) ON [PRIMARY]
      END
      GO
      
      -- Create the Person table.
      IF NOT EXISTS (SELECT * FROM sys.objects 
      		WHERE object_id = OBJECT_ID(N'[dbo].[Person]') 
      		AND type in (N'U'))
      BEGIN
      CREATE TABLE [dbo].[Person](
      	[PersonID] [int] IDENTITY(1,1) NOT NULL,
      	[LastName] [nvarchar](50) NOT NULL,
      	[FirstName] [nvarchar](50) NOT NULL,
      	[HireDate] [datetime] NULL,
      	[EnrollmentDate] [datetime] NULL,
       CONSTRAINT [PK_School.Student] PRIMARY KEY CLUSTERED 
      (
      	[PersonID] ASC
      )WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
      ) ON [PRIMARY]
      END
      GO
      
      -- Create the OnsiteCourse table.
      IF NOT EXISTS (SELECT * FROM sys.objects 
      		WHERE object_id = OBJECT_ID(N'[dbo].[OnsiteCourse]') 
      		AND type in (N'U'))
      BEGIN
      CREATE TABLE [dbo].[OnsiteCourse](
      	[CourseID] [int] NOT NULL,
      	[Location] [nvarchar](50) NOT NULL,
      	[Days] [nvarchar](50) NOT NULL,
      	[Time] [smalldatetime] NOT NULL,
       CONSTRAINT [PK_OnsiteCourse] PRIMARY KEY CLUSTERED 
      (
      	[CourseID] ASC
      )WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
      ) ON [PRIMARY]
      END
      GO
      
      -- Create the OnlineCourse table.
      IF NOT EXISTS (SELECT * FROM sys.objects 
      		WHERE object_id = OBJECT_ID(N'[dbo].[OnlineCourse]') 
      		AND type in (N'U'))
      BEGIN
      CREATE TABLE [dbo].[OnlineCourse](
      	[CourseID] [int] NOT NULL,
      	[URL] [nvarchar](100) NOT NULL,
       CONSTRAINT [PK_OnlineCourse] PRIMARY KEY CLUSTERED 
      (
      	[CourseID] ASC
      )WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
      ) ON [PRIMARY]
      END
      GO
      
      --Create the StudentGrade table.
      IF NOT EXISTS (SELECT * FROM sys.objects 
      		WHERE object_id = OBJECT_ID(N'[dbo].[StudentGrade]') 
      		AND type in (N'U'))
      BEGIN
      CREATE TABLE [dbo].[StudentGrade](
      	[EnrollmentID] [int] IDENTITY(1,1) NOT NULL,
      	[CourseID] [int] NOT NULL,
      	[StudentID] [int] NOT NULL,
      	[Grade] [decimal](3, 2) NULL,
       CONSTRAINT [PK_StudentGrade] PRIMARY KEY CLUSTERED 
      (
      	[EnrollmentID] ASC
      )WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
      ) ON [PRIMARY]
      END
      GO
      
      -- Create the CourseInstructor table.
      IF NOT EXISTS (SELECT * FROM sys.objects 
      		WHERE object_id = OBJECT_ID(N'[dbo].[CourseInstructor]') 
      		AND type in (N'U'))
      BEGIN
      CREATE TABLE [dbo].[CourseInstructor](
      	[CourseID] [int] NOT NULL,
      	[PersonID] [int] NOT NULL,
       CONSTRAINT [PK_CourseInstructor] PRIMARY KEY CLUSTERED 
      (
      	[CourseID] ASC,
      	[PersonID] ASC
      )WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
      ) ON [PRIMARY]
      END
      GO
      
      -- Create the Course table.
      IF NOT EXISTS (SELECT * FROM sys.objects 
      		WHERE object_id = OBJECT_ID(N'[dbo].[Course]') 
      		AND type in (N'U'))
      BEGIN
      CREATE TABLE [dbo].[Course](
      	[CourseID] [int] NOT NULL,
      	[Title] [nvarchar](100) NOT NULL,
      	[Credits] [int] NOT NULL,
      	[DepartmentID] [int] NOT NULL,
       CONSTRAINT [PK_School.Course] PRIMARY KEY CLUSTERED 
      (
      	[CourseID] ASC
      )WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
      ) ON [PRIMARY]
      END
      GO
      
      -- Create the OfficeAssignment table.
      IF NOT EXISTS (SELECT * FROM sys.objects 
      		WHERE object_id = OBJECT_ID(N'[dbo].[OfficeAssignment]')
      		AND type in (N'U'))
      BEGIN
      CREATE TABLE [dbo].[OfficeAssignment](
      	[InstructorID] [int] NOT NULL,
      	[Location] [nvarchar](50) NOT NULL,
      	[Timestamp] [timestamp] NOT NULL,
       CONSTRAINT [PK_OfficeAssignment] PRIMARY KEY CLUSTERED 
      (
      	[InstructorID] ASC
      )WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
      ) ON [PRIMARY]
      END
      GO
      
      -- Define the relationship between OnsiteCourse and Course.
      IF NOT EXISTS (SELECT * FROM sys.foreign_keys 
             WHERE object_id = OBJECT_ID(N'[dbo].[FK_OnsiteCourse_Course]')
             AND parent_object_id = OBJECT_ID(N'[dbo].[OnsiteCourse]'))
      ALTER TABLE [dbo].[OnsiteCourse]  WITH CHECK ADD  
             CONSTRAINT [FK_OnsiteCourse_Course] FOREIGN KEY([CourseID])
      REFERENCES [dbo].[Course] ([CourseID])
      GO
      ALTER TABLE [dbo].[OnsiteCourse] CHECK 
             CONSTRAINT [FK_OnsiteCourse_Course]
      GO
      
      -- Define the relationship between OnlineCourse and Course.
      IF NOT EXISTS (SELECT * FROM sys.foreign_keys 
             WHERE object_id = OBJECT_ID(N'[dbo].[FK_OnlineCourse_Course]')
             AND parent_object_id = OBJECT_ID(N'[dbo].[OnlineCourse]'))
      ALTER TABLE [dbo].[OnlineCourse]  WITH CHECK ADD  
             CONSTRAINT [FK_OnlineCourse_Course] FOREIGN KEY([CourseID])
      REFERENCES [dbo].[Course] ([CourseID])
      GO
      ALTER TABLE [dbo].[OnlineCourse] CHECK 
             CONSTRAINT [FK_OnlineCourse_Course]
      GO
      
      -- Define the relationship between StudentGrade and Course.
      IF NOT EXISTS (SELECT * FROM sys.foreign_keys 
             WHERE object_id = OBJECT_ID(N'[dbo].[FK_StudentGrade_Course]')
             AND parent_object_id = OBJECT_ID(N'[dbo].[StudentGrade]'))
      ALTER TABLE [dbo].[StudentGrade]  WITH CHECK ADD  
             CONSTRAINT [FK_StudentGrade_Course] FOREIGN KEY([CourseID])
      REFERENCES [dbo].[Course] ([CourseID])
      GO
      ALTER TABLE [dbo].[StudentGrade] CHECK 
             CONSTRAINT [FK_StudentGrade_Course]
      GO
      
      --Define the relationship between StudentGrade and Student.
      IF NOT EXISTS (SELECT * FROM sys.foreign_keys 
             WHERE object_id = OBJECT_ID(N'[dbo].[FK_StudentGrade_Student]')
             AND parent_object_id = OBJECT_ID(N'[dbo].[StudentGrade]'))
      ALTER TABLE [dbo].[StudentGrade]  WITH CHECK ADD  
             CONSTRAINT [FK_StudentGrade_Student] FOREIGN KEY([StudentID])
      REFERENCES [dbo].[Person] ([PersonID])
      GO
      ALTER TABLE [dbo].[StudentGrade] CHECK 
             CONSTRAINT [FK_StudentGrade_Student]
      GO
      
      -- Define the relationship between CourseInstructor and Course.
      IF NOT EXISTS (SELECT * FROM sys.foreign_keys 
         WHERE object_id = OBJECT_ID(N'[dbo].[FK_CourseInstructor_Course]')
         AND parent_object_id = OBJECT_ID(N'[dbo].[CourseInstructor]'))
      ALTER TABLE [dbo].[CourseInstructor]  WITH CHECK ADD  
         CONSTRAINT [FK_CourseInstructor_Course] FOREIGN KEY([CourseID])
      REFERENCES [dbo].[Course] ([CourseID])
      GO
      ALTER TABLE [dbo].[CourseInstructor] CHECK 
         CONSTRAINT [FK_CourseInstructor_Course]
      GO
      
      -- Define the relationship between CourseInstructor and Person.
      IF NOT EXISTS (SELECT * FROM sys.foreign_keys 
         WHERE object_id = OBJECT_ID(N'[dbo].[FK_CourseInstructor_Person]')
         AND parent_object_id = OBJECT_ID(N'[dbo].[CourseInstructor]'))
      ALTER TABLE [dbo].[CourseInstructor]  WITH CHECK ADD  
         CONSTRAINT [FK_CourseInstructor_Person] FOREIGN KEY([PersonID])
      REFERENCES [dbo].[Person] ([PersonID])
      GO
      ALTER TABLE [dbo].[CourseInstructor] CHECK 
         CONSTRAINT [FK_CourseInstructor_Person]
      GO
      
      -- Define the relationship between Course and Department.
      IF NOT EXISTS (SELECT * FROM sys.foreign_keys 
             WHERE object_id = OBJECT_ID(N'[dbo].[FK_Course_Department]')
             AND parent_object_id = OBJECT_ID(N'[dbo].[Course]'))
      ALTER TABLE [dbo].[Course]  WITH CHECK ADD  
             CONSTRAINT [FK_Course_Department] FOREIGN KEY([DepartmentID])
      REFERENCES [dbo].[Department] ([DepartmentID])
      GO
      ALTER TABLE [dbo].[Course] CHECK CONSTRAINT [FK_Course_Department]
      GO
      
      --Define the relationship between OfficeAssignment and Person.
      IF NOT EXISTS (SELECT * FROM sys.foreign_keys 
         WHERE object_id = OBJECT_ID(N'[dbo].[FK_OfficeAssignment_Person]')
         AND parent_object_id = OBJECT_ID(N'[dbo].[OfficeAssignment]'))
      ALTER TABLE [dbo].[OfficeAssignment]  WITH CHECK ADD  
         CONSTRAINT [FK_OfficeAssignment_Person] FOREIGN KEY([InstructorID])
      REFERENCES [dbo].[Person] ([PersonID])
      GO
      ALTER TABLE [dbo].[OfficeAssignment] CHECK 
         CONSTRAINT [FK_OfficeAssignment_Person]
      GO
      
      -- Create InsertOfficeAssignment stored procedure.
      IF NOT EXISTS (SELECT * FROM sys.objects 
      		WHERE object_id = OBJECT_ID(N'[dbo].[InsertOfficeAssignment]') 
      		AND type in (N'P', N'PC'))
      BEGIN
      EXEC dbo.sp_executesql @statement = N'
      CREATE PROCEDURE [dbo].[InsertOfficeAssignment]
      		@InstructorID int,
      		@Location nvarchar(50)
      		AS
      		INSERT INTO dbo.OfficeAssignment (InstructorID, Location)
      		VALUES (@InstructorID, @Location);
      		IF @@ROWCOUNT > 0
      		BEGIN
      			SELECT [Timestamp] FROM OfficeAssignment 
      				WHERE InstructorID=@InstructorID;
      		END
      ' 
      END
      GO
      
      --Create the UpdateOfficeAssignment stored procedure.
      IF NOT EXISTS (SELECT * FROM sys.objects 
      		WHERE object_id = OBJECT_ID(N'[dbo].[UpdateOfficeAssignment]') 
      		AND type in (N'P', N'PC'))
      BEGIN
      EXEC dbo.sp_executesql @statement = N'
      CREATE PROCEDURE [dbo].[UpdateOfficeAssignment]
      		@InstructorID int,
      		@Location nvarchar(50),
      		@OrigTimestamp timestamp
      		AS
      		UPDATE OfficeAssignment SET Location=@Location 
      		WHERE InstructorID=@InstructorID AND [Timestamp]=@OrigTimestamp;
      		IF @@ROWCOUNT > 0
      		BEGIN
      			SELECT [Timestamp] FROM OfficeAssignment 
      				WHERE InstructorID=@InstructorID;
      		END
      ' 
      END
      GO
      
      -- Create the DeleteOfficeAssignment stored procedure.
      IF NOT EXISTS (SELECT * FROM sys.objects 
      		WHERE object_id = OBJECT_ID(N'[dbo].[DeleteOfficeAssignment]') 
      		AND type in (N'P', N'PC'))
      BEGIN
      EXEC dbo.sp_executesql @statement = N'
      CREATE PROCEDURE [dbo].[DeleteOfficeAssignment]
      		@InstructorID int
      		AS
      		DELETE FROM OfficeAssignment
      		WHERE InstructorID=@InstructorID;
      ' 
      END
      GO
      
      -- Create the DeletePerson stored procedure.
      IF NOT EXISTS (SELECT * FROM sys.objects 
      		WHERE object_id = OBJECT_ID(N'[dbo].[DeletePerson]') 
      		AND type in (N'P', N'PC'))
      BEGIN
      EXEC dbo.sp_executesql @statement = N'
      CREATE PROCEDURE [dbo].[DeletePerson]
      		@PersonID int
      		AS
      		DELETE FROM Person WHERE PersonID = @PersonID;
      ' 
      END
      GO
      
      -- Create the UpdatePerson stored procedure.
      IF NOT EXISTS (SELECT * FROM sys.objects 
      		WHERE object_id = OBJECT_ID(N'[dbo].[UpdatePerson]') 
      		AND type in (N'P', N'PC'))
      BEGIN
      EXEC dbo.sp_executesql @statement = N'
      CREATE PROCEDURE [dbo].[UpdatePerson]
      		@PersonID int,
      		@LastName nvarchar(50),
      		@FirstName nvarchar(50),
      		@HireDate datetime,
      		@EnrollmentDate datetime
      		AS
      		UPDATE Person SET LastName=@LastName, 
      				FirstName=@FirstName,
      				HireDate=@HireDate,
      				EnrollmentDate=@EnrollmentDate
      		WHERE PersonID=@PersonID;
      ' 
      END
      GO
      
      -- Create the InsertPerson stored procedure.
      IF NOT EXISTS (SELECT * FROM sys.objects 
      		WHERE object_id = OBJECT_ID(N'[dbo].[InsertPerson]') 
      		AND type in (N'P', N'PC'))
      BEGIN
      EXEC dbo.sp_executesql @statement = N'
      CREATE PROCEDURE [dbo].[InsertPerson]
      		@LastName nvarchar(50),
      		@FirstName nvarchar(50),
      		@HireDate datetime,
      		@EnrollmentDate datetime
      		AS
      		INSERT INTO dbo.Person (LastName, 
      					FirstName, 
      					HireDate, 
      					EnrollmentDate)
      		VALUES (@LastName, 
      			@FirstName, 
      			@HireDate, 
      			@EnrollmentDate);
      		SELECT SCOPE_IDENTITY() as NewPersonID;
      ' 
      END
      GO
      
      -- Create GetStudentGrades stored procedure.
      IF NOT EXISTS (SELECT * FROM sys.objects 
                  WHERE object_id = OBJECT_ID(N'[dbo].[GetStudentGrades]') 
                  AND type in (N'P', N'PC'))
      BEGIN
      EXEC dbo.sp_executesql @statement = N'
      CREATE PROCEDURE [dbo].[GetStudentGrades]
                  @StudentID int
                  AS
                  SELECT EnrollmentID, Grade, CourseID, StudentID FROM dbo.StudentGrade
                  WHERE StudentID = @StudentID
      ' 
      END
      GO
      
      -- Create GetDepartmentName stored procedure.
      IF NOT EXISTS (SELECT * FROM sys.objects 
                  WHERE object_id = OBJECT_ID(N'[dbo].[GetDepartmentName]') 
                  AND type in (N'P', N'PC'))
      BEGIN
      EXEC dbo.sp_executesql @statement = N'
      CREATE PROCEDURE [dbo].[GetDepartmentName]
            @ID int,
            @Name nvarchar(50) OUTPUT
            AS
            SELECT @Name = Name FROM Department
            WHERE DepartmentID = @ID
      '
      END
      GO
      
      -- Insert data into the Person table.
      USE School
      GO
      SET IDENTITY_INSERT dbo.Person ON
      GO
      INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
      VALUES (1, 'Abercrombie', 'Kim', '1995-03-11', null);
      INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
      VALUES (2, 'Barzdukas', 'Gytis', null, '2005-09-01');
      INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
      VALUES (3, 'Justice', 'Peggy', null, '2001-09-01');
      INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
      VALUES (4, 'Fakhouri', 'Fadi', '2002-08-06', null);
      INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
      VALUES (5, 'Harui', 'Roger', '1998-07-01', null);
      INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
      VALUES (6, 'Li', 'Yan', null, '2002-09-01');
      INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
      VALUES (7, 'Norman', 'Laura', null, '2003-09-01');
      INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
      VALUES (8, 'Olivotto', 'Nino', null, '2005-09-01');
      INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
      VALUES (9, 'Tang', 'Wayne', null, '2005-09-01');
      INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
      VALUES (10, 'Alonso', 'Meredith', null, '2002-09-01');
      INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
      VALUES (11, 'Lopez', 'Sophia', null, '2004-09-01');
      INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
      VALUES (12, 'Browning', 'Meredith', null, '2000-09-01');
      INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
      VALUES (13, 'Anand', 'Arturo', null, '2003-09-01');
      INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
      VALUES (14, 'Walker', 'Alexandra', null, '2000-09-01');
      INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
      VALUES (15, 'Powell', 'Carson', null, '2004-09-01');
      INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
      VALUES (16, 'Jai', 'Damien', null, '2001-09-01');
      INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
      VALUES (17, 'Carlson', 'Robyn', null, '2005-09-01');
      INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
      VALUES (18, 'Zheng', 'Roger', '2004-02-12', null);
      INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
      VALUES (19, 'Bryant', 'Carson', null, '2001-09-01');
      INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
      VALUES (20, 'Suarez', 'Robyn', null, '2004-09-01');
      INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
      VALUES (21, 'Holt', 'Roger', null, '2004-09-01');
      INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
      VALUES (22, 'Alexander', 'Carson', null, '2005-09-01');
      INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
      VALUES (23, 'Morgan', 'Isaiah', null, '2001-09-01');
      INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
      VALUES (24, 'Martin', 'Randall', null, '2005-09-01');
      INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
      VALUES (25, 'Kapoor', 'Candace', '2001-01-15', null);
      INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
      VALUES (26, 'Rogers', 'Cody', null, '2002-09-01');
      INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
      VALUES (27, 'Serrano', 'Stacy', '1999-06-01', null);
      INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
      VALUES (28, 'White', 'Anthony', null, '2001-09-01');
      INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
      VALUES (29, 'Griffin', 'Rachel', null, '2004-09-01');
      INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
      VALUES (30, 'Shan', 'Alicia', null, '2003-09-01');
      INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
      VALUES (31, 'Stewart', 'Jasmine', '1997-10-12', null);
      INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
      VALUES (32, 'Xu', 'Kristen', '2001-7-23', null);
      INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
      VALUES (33, 'Gao', 'Erica', null, '2003-01-30');
      INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
      VALUES (34, 'Van Houten', 'Roger', '2000-12-07', null);
      GO
      SET IDENTITY_INSERT dbo.Person OFF
      GO
      
      -- Insert data into the Department table.
      INSERT INTO dbo.Department (DepartmentID, [Name], Budget, StartDate, Administrator)
      VALUES (1, 'Engineering', 350000.00, '2007-09-01', 2);
      INSERT INTO dbo.Department (DepartmentID, [Name], Budget, StartDate, Administrator)
      VALUES (2, 'English', 120000.00, '2007-09-01', 6);
      INSERT INTO dbo.Department (DepartmentID, [Name], Budget, StartDate, Administrator)
      VALUES (4, 'Economics', 200000.00, '2007-09-01', 4);
      INSERT INTO dbo.Department (DepartmentID, [Name], Budget, StartDate, Administrator)
      VALUES (7, 'Mathematics', 250000.00, '2007-09-01', 3);
      GO
      
      
      -- Insert data into the Course table.
      INSERT INTO dbo.Course (CourseID, Title, Credits, DepartmentID)
      VALUES (1050, 'Chemistry', 4, 1);
      INSERT INTO dbo.Course (CourseID, Title, Credits, DepartmentID)
      VALUES (1061, 'Physics', 4, 1);
      INSERT INTO dbo.Course (CourseID, Title, Credits, DepartmentID)
      VALUES (1045, 'Calculus', 4, 7);
      INSERT INTO dbo.Course (CourseID, Title, Credits, DepartmentID)
      VALUES (2030, 'Poetry', 2, 2);
      INSERT INTO dbo.Course (CourseID, Title, Credits, DepartmentID)
      VALUES (2021, 'Composition', 3, 2);
      INSERT INTO dbo.Course (CourseID, Title, Credits, DepartmentID)
      VALUES (2042, 'Literature', 4, 2);
      INSERT INTO dbo.Course (CourseID, Title, Credits, DepartmentID)
      VALUES (4022, 'Microeconomics', 3, 4);
      INSERT INTO dbo.Course (CourseID, Title, Credits, DepartmentID)
      VALUES (4041, 'Macroeconomics', 3, 4);
      INSERT INTO dbo.Course (CourseID, Title, Credits, DepartmentID)
      VALUES (4061, 'Quantitative', 2, 4);
      INSERT INTO dbo.Course (CourseID, Title, Credits, DepartmentID)
      VALUES (3141, 'Trigonometry', 4, 7);
      GO
      
      -- Insert data into the OnlineCourse table.
      INSERT INTO dbo.OnlineCourse (CourseID, URL)
      VALUES (2030, 'http://www.fineartschool.net/Poetry');
      INSERT INTO dbo.OnlineCourse (CourseID, URL)
      VALUES (2021, 'http://www.fineartschool.net/Composition');
      INSERT INTO dbo.OnlineCourse (CourseID, URL)
      VALUES (4041, 'http://www.fineartschool.net/Macroeconomics');
      INSERT INTO dbo.OnlineCourse (CourseID, URL)
      VALUES (3141, 'http://www.fineartschool.net/Trigonometry');
      
      --Insert data into OnsiteCourse table.
      INSERT INTO dbo.OnsiteCourse (CourseID, Location, Days, [Time])
      VALUES (1050, '123 Smith', 'MTWH', '11:30');
      INSERT INTO dbo.OnsiteCourse (CourseID, Location, Days, [Time])
      VALUES (1061, '234 Smith', 'TWHF', '13:15');
      INSERT INTO dbo.OnsiteCourse (CourseID, Location, Days, [Time])
      VALUES (1045, '121 Smith','MWHF', '15:30');
      INSERT INTO dbo.OnsiteCourse (CourseID, Location, Days, [Time])
      VALUES (4061, '22 Williams', 'TH', '11:15');
      INSERT INTO dbo.OnsiteCourse (CourseID, Location, Days, [Time])
      VALUES (2042, '225 Adams', 'MTWH', '11:00');
      INSERT INTO dbo.OnsiteCourse (CourseID, Location, Days, [Time])
      VALUES (4022, '23 Williams', 'MWF', '9:00');
      
      -- Insert data into the CourseInstructor table.
      INSERT INTO dbo.CourseInstructor(CourseID, PersonID)
      VALUES (1050, 1);
      INSERT INTO dbo.CourseInstructor(CourseID, PersonID)
      VALUES (1061, 31);
      INSERT INTO dbo.CourseInstructor(CourseID, PersonID)
      VALUES (1045, 5);
      INSERT INTO dbo.CourseInstructor(CourseID, PersonID)
      VALUES (2030, 4);
      INSERT INTO dbo.CourseInstructor(CourseID, PersonID)
      VALUES (2021, 27);
      INSERT INTO dbo.CourseInstructor(CourseID, PersonID)
      VALUES (2042, 25);
      INSERT INTO dbo.CourseInstructor(CourseID, PersonID)
      VALUES (4022, 18);
      INSERT INTO dbo.CourseInstructor(CourseID, PersonID)
      VALUES (4041, 32);
      INSERT INTO dbo.CourseInstructor(CourseID, PersonID)
      VALUES (4061, 34);
      GO
      
      --Insert data into the OfficeAssignment table.
      INSERT INTO dbo.OfficeAssignment(InstructorID, Location)
      VALUES (1, '17 Smith');
      INSERT INTO dbo.OfficeAssignment(InstructorID, Location)
      VALUES (4, '29 Adams');
      INSERT INTO dbo.OfficeAssignment(InstructorID, Location)
      VALUES (5, '37 Williams');
      INSERT INTO dbo.OfficeAssignment(InstructorID, Location)
      VALUES (18, '143 Smith');
      INSERT INTO dbo.OfficeAssignment(InstructorID, Location)
      VALUES (25, '57 Adams');
      INSERT INTO dbo.OfficeAssignment(InstructorID, Location)
      VALUES (27, '271 Williams');
      INSERT INTO dbo.OfficeAssignment(InstructorID, Location)
      VALUES (31, '131 Smith');
      INSERT INTO dbo.OfficeAssignment(InstructorID, Location)
      VALUES (32, '203 Williams');
      INSERT INTO dbo.OfficeAssignment(InstructorID, Location)
      VALUES (34, '213 Smith');
      
      -- Insert data into the StudentGrade table.
      INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
      VALUES (2021, 2, 4);
      INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
      VALUES (2030, 2, 3.5);
      INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
      VALUES (2021, 3, 3);
      INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
      VALUES (2030, 3, 4);
      INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
      VALUES (2021, 6, 2.5);
      INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
      VALUES (2042, 6, 3.5);
      INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
      VALUES (2021, 7, 3.5);
      INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
      VALUES (2042, 7, 4);
      INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
      VALUES (2021, 8, 3);
      INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
      VALUES (2042, 8, 3);
      INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
      VALUES (4041, 9, 3.5);
      INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
      VALUES (4041, 10, null);
      INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
      VALUES (4041, 11, 2.5);
      INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
      VALUES (4041, 12, null);
      INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
      VALUES (4061, 12, null);
      INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
      VALUES (4022, 14, 3);
      INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
      VALUES (4022, 13, 4);
      INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
      VALUES (4061, 13, 4);
      INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
      VALUES (4041, 14, 3);
      INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
      VALUES (4022, 15, 2.5);
      INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
      VALUES (4022, 16, 2);
      INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
      VALUES (4022, 17, null);
      INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
      VALUES (4022, 19, 3.5);
      INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
      VALUES (4061, 20, 4);
      INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
      VALUES (4061, 21, 2);
      INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
      VALUES (4022, 22, 3);
      INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
      VALUES (4041, 22, 3.5);
      INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
      VALUES (4061, 22, 2.5);
      INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
      VALUES (4022, 23, 3);
      INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
      VALUES (1045, 23, 1.5);
      INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
      VALUES (1061, 24, 4);
      INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
      VALUES (1061, 25, 3);
      INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
      VALUES (1050, 26, 3.5);
      INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
      VALUES (1061, 26, 3);
      INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
      VALUES (1061, 27, 3);
      INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
      VALUES (1045, 28, 2.5);
      INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
      VALUES (1050, 28, 3.5);
      INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
      VALUES (1061, 29, 4);
      INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
      VALUES (1050, 30, 3.5);
      INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
      VALUES (1061, 30, 4);
      GO

      3:RIA之ADO.NET ENTITY DATA MODEL

      為web創建ADO.NET ENTITY DATA MODEL,如圖:

      image

      注意,習慣命名規則:Model數據庫名.edmx。

      在下一步中,我們選擇剛才創建的數據庫:

      image

      選擇新建連接,按照指示完成數據庫連接配置。

      進入下一步:

      image

      在這一步中,注意一定要選擇第一個紅框中的內容,否則默認不能生成聯表查詢。在下一步中,我們選擇“Generate from database”,如下:

      image

      點擊Finish后,VS為我們生成了一個以edmx為后綴的文件。OK,到此暫停,我們先來看看這個edmx文件是干什么用的,為我們完成了什么工作。

      3.1:什么是EDM

      ENTITY DATA MODEL,簡寫為EDM,中文為實體數據模型。它由三個概念組成。概念模型由概念架構定義語言文件 (.csdl)來定義,映射由映射規范語言文件 (.msl),存儲模型(又稱邏輯模型)由存儲架構定義語言文件 (.ssdl)來定義。這三者合在一起就是EDM模型。EDM模型在項目中的表現形式就是擴展名為.edmx的文件。

      Entity Framework實現了一套類似于ADO.NET2.0中的連接類來操作EDM完成持久化。EntityFramework中所有發往EDM的操作都是經過EntityClient,包括使用LINQ to Entity進行的操作。目前可用操作如下:

      image

      4:針對web EMD的測試

      理解了EMD在開發中所處的作用,我們就可以針對EDM來寫個測試項目。為了簡便期間,我們直接在EMD中的SchoolEntities類型的構造方法中直接創建測試(嚴格意義來說,這不是個單元測試,這僅是測試)。

      image

      針對這個操作,會在測試項目中生成一個SchoolEntitiesTest的類型,同時,在這個類型中會生成一個SchoolEntitiesConstructorTest的方法,如下:

      image

      由于我們僅僅測試EDM,而跟WEB本身沒有關系,所有我們注釋掉了紅框中的內容。同時我們寫入真正的測試代碼,如下:

      image

      這里的一個小細節是,連接字符串我們通過編碼的方式傳入到測試方法。EDM的連接字符串和ADO.NET的連接字符串有很大不同,在這里,可公開一下我們的生成EDM連接字符串的方法:

              public string GetConnectionString()
              {
                  string providerName = "System.Data.SqlClient";
                  string serverName = "192.168.0.96";
                  string databaseName = "mysample";
                  SqlConnectionStringBuilder sqlBuilder = new SqlConnectionStringBuilder();
                  sqlBuilder.DataSource = serverName;
                  sqlBuilder.InitialCatalog = databaseName;
                  sqlBuilder.IntegratedSecurity = false;
                  sqlBuilder.UserID = "sa";
                  sqlBuilder.Password = "sasa";
                  string providerString = sqlBuilder.ToString();
                  EntityConnectionStringBuilder entityBuilder = new EntityConnectionStringBuilder();
                  entityBuilder.Provider = providerName;
                  entityBuilder.ProviderConnectionString = providerString;
                  entityBuilder.Provider = providerName;
                  entityBuilder.Metadata = "res://*/Modelmysample.csdl|res://*/Modelmysample.ssdl|res://*/Modelmysample.msl";
                  return entityBuilder.ToString();
              }

      調試我們的測試代碼,最終我們會獲取到數據庫中的4條記錄。

      image

      通過了以上的闡述,我們了解了EDM的作用,以及如何測試EDM。接下來,我們需要知道如何在SL APP中調用WEB中的EDM。

      5:Domain Service Class

      在SL APP中調用EDM是通過WEB的Domain Service Class來實現的。簡單的說來,它是RIA SERVICE框架中的一個重要內容。

      在WEB選擇添加新項,選擇Domain Service Class,命名,下一步會出現如下界面:

      image

      我們可以做出如上勾選。確定后,編譯整個解決方法,會發現目前的解決方案結構會變成如下形式:

      image

      注意,第一個紅框部分,是VS自動為我們在SL APP生成的。它是第二個紅框在客戶端的對應版本。我們需要將它包含到項目中去。它包含了所有服務端版本類中定義的方法、實體等,而可在客戶端直接調用。

      6:Ria Service數據流轉

      好了,經過以上的描述我們知道了:

      EDM:直接操作數據庫;

      Domain Service Class:調用EDM,并把數據接口通過WCF的形式開放給客戶端;

      *.Web.g.cs:調用Domain Service Class,完成對數據的讀取,并最終呈現給UI;

      7:最終展示

      在SL APP中的UI調用呈現數據。前臺:

      image

      后臺,直接使用*.Web.g.cs中的DomainServiceMySample 加載數據:

              public MainPage()
              {
                  InitializeComponent();
                  DomainServiceMySample context = new DomainServiceMySample();
                  context.Load(context.GetEmpQuery());
                  lb1.ItemsSource = context.emps;
              }

      最后界面顯示:

      image

      8:問題

      該示例演示了使用Entity Framework和WCF Ria Services進行Silverlight開發。我們當然可以繼續使用此模式完善功能,知道一個功能復雜的應用程序開發完畢。但是,當前,此示例起碼存在如下幾個問題。

      1:實體模型被緊耦合在EDM中,同時它不能項目(模塊)使用。隨著每一次更新EDM,實體模型會被覆蓋;

      2:EDM和BLL緊耦合在一起;

      3:沒有提煉出數據接口,導致我們沒有辦法在此示例中進行單元測試。示例中雖然存在測試項目,但那是數據庫相關的,達不到單元測試的要求;

      下篇我們將繼續重構該示例,以逐步解決這些問題。

      本示例源碼下載:SilverlightApplicationSchool20110612.zip

      posted @ 2011-06-10 15:43  陸敏技  閱讀(4449)  評論(4)    收藏  舉報
      Web Counter
      Coupon for Contacts
      主站蜘蛛池模板: 日韩最新中文字幕| 国产一级特黄高清大片一| 国产青榴视频在线观看| 亚洲欧美日韩人成在线播放| 国产乱码日产乱码精品精| 久久精品视频一二三四区| 少妇久久久久久久久久| 国产偷国产偷亚洲高清午夜| 狠狠亚洲色一日本高清色| 少妇的丰满3中文字幕| 伊人色综合九久久天天蜜桃| 成人午夜av在线播放| 97无码人妻福利免费公开在线视频| 91国产自拍一区二区三区| 婷婷色爱区综合五月激情韩国| 国产女人喷潮视频免费| 国产熟女高潮一区二区三区| 无码人妻丰满熟妇奶水区码| 亚洲精品久久久久久无码色欲四季| 亚洲综合国产一区二区三区| 天天爽夜夜爱| 亚洲精品成人综合色在线| 国产成人亚洲综合图区| 国产-第1页-浮力影院| 国产日韩av一区二区在线| 亚洲欧美人成网站在线观看看| 国产午夜亚洲精品国产成人| 欧美综合区自拍亚洲综合绿色| 91精品国产老熟女在线| 国产欧美日韩亚洲一区二区三区 | 99精品热在线在线观看视| 午夜大尺度福利视频一区| 99久久国产福利自产拍| 性欧美videofree高清精品| 黑人异族巨大巨大巨粗| 九九热视频在线精品18| 国产av一区二区亚洲精品| 亚洲日韩国产精品第一页一区| 免费国产一区二区不卡| 亚洲aⅴ无码专区在线观看q| 最近中文字幕免费手机版|