日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

(转)使用Entity Framework和WCF Ria Services开发SilverLight之1:简单模型

發布時間:2025/3/15 编程问答 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 (转)使用Entity Framework和WCF Ria Services开发SilverLight之1:简单模型 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

原文地址:http://www.cnblogs.com/luminji/archive/2011/06/10/2077696.html

?

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

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

1:基礎結構

首先,創建SL APP,如下:

然后,選擇創建web:

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

2:創建一個示例數據庫

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

show sourceview sourceprint?
001SET ANSI_NULLS ON
002GO
003SET QUOTED_IDENTIFIER ON
004GO
005
006USE [master];
007GO
008
009IF EXISTS (SELECT * FROM sys.databases WHERE name = 'School')
010??? DROP DATABASE School;
011GO
012
013-- Create the School database.
014CREATE DATABASE School;
015GO
016
017-- Specify a simple recovery model
018-- to keep the log growth to a minimum.
019ALTER DATABASE School
020??? SET RECOVERY SIMPLE;
021GO
022
023USE School;
024GO
025
026-- Create the Department table.
027IF NOT EXISTS (SELECT * FROM sys.objects
028??????? WHERE object_id = OBJECT_ID(N'[dbo].[Department]')
029??????? AND type in (N'U'))
030BEGIN
031CREATE TABLE [dbo].[Department](
032??? [DepartmentID] [int] NOT NULL,
033??? [Name] [nvarchar](50) NOT NULL,
034??? [Budget] [money] NOT NULL,
035??? [StartDate] [datetime] NOT NULL,
036??? [Administrator] [int] NULL,
037 CONSTRAINT [PK_Department] PRIMARY KEY CLUSTERED
038(
039??? [DepartmentID] ASC
040)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
041) ON [PRIMARY]
042END
043GO
044
045-- Create the Person table.
046IF NOT EXISTS (SELECT * FROM sys.objects
047??????? WHERE object_id = OBJECT_ID(N'[dbo].[Person]')
048??????? AND type in (N'U'))
049BEGIN
050CREATE TABLE [dbo].[Person](
051??? [PersonID] [int] IDENTITY(1,1) NOT NULL,
052??? [LastName] [nvarchar](50) NOT NULL,
053??? [FirstName] [nvarchar](50) NOT NULL,
054??? [HireDate] [datetime] NULL,
055??? [EnrollmentDate] [datetime] NULL,
056 CONSTRAINT [PK_School.Student] PRIMARY KEY CLUSTERED
057(
058??? [PersonID] ASC
059)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
060) ON [PRIMARY]
061END
062GO
063
064-- Create the OnsiteCourse table.
065IF NOT EXISTS (SELECT * FROM sys.objects
066??????? WHERE object_id = OBJECT_ID(N'[dbo].[OnsiteCourse]')
067??????? AND type in (N'U'))
068BEGIN
069CREATE TABLE [dbo].[OnsiteCourse](
070??? [CourseID] [int] NOT NULL,
071??? [Location] [nvarchar](50) NOT NULL,
072??? [Days] [nvarchar](50) NOT NULL,
073??? [Time] [smalldatetime] NOT NULL,
074 CONSTRAINT [PK_OnsiteCourse] PRIMARY KEY CLUSTERED
075(
076??? [CourseID] ASC
077)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
078) ON [PRIMARY]
079END
080GO
081
082-- Create the OnlineCourse table.
083IF NOT EXISTS (SELECT * FROM sys.objects
084??????? WHERE object_id = OBJECT_ID(N'[dbo].[OnlineCourse]')
085??????? AND type in (N'U'))
086BEGIN
087CREATE TABLE [dbo].[OnlineCourse](
088??? [CourseID] [int] NOT NULL,
089??? [URL] [nvarchar](100) NOT NULL,
090 CONSTRAINT [PK_OnlineCourse] PRIMARY KEY CLUSTERED
091(
092??? [CourseID] ASC
093)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
094) ON [PRIMARY]
095END
096GO
097
098--Create the StudentGrade table.
099IF NOT EXISTS (SELECT * FROM sys.objects
100??????? WHERE object_id = OBJECT_ID(N'[dbo].[StudentGrade]')
101??????? AND type in (N'U'))
102BEGIN
103CREATE TABLE [dbo].[StudentGrade](
104??? [EnrollmentID] [int] IDENTITY(1,1) NOT NULL,
105??? [CourseID] [int] NOT NULL,
106??? [StudentID] [int] NOT NULL,
107??? [Grade] [decimal](3, 2) NULL,
108 CONSTRAINT [PK_StudentGrade] PRIMARY KEY CLUSTERED
109(
110??? [EnrollmentID] ASC
111)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
112) ON [PRIMARY]
113END
114GO
115
116-- Create the CourseInstructor table.
117IF NOT EXISTS (SELECT * FROM sys.objects
118??????? WHERE object_id = OBJECT_ID(N'[dbo].[CourseInstructor]')
119??????? AND type in (N'U'))
120BEGIN
121CREATE TABLE [dbo].[CourseInstructor](
122??? [CourseID] [int] NOT NULL,
123??? [PersonID] [int] NOT NULL,
124 CONSTRAINT [PK_CourseInstructor] PRIMARY KEY CLUSTERED
125(
126??? [CourseID] ASC,
127??? [PersonID] ASC
128)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
129) ON [PRIMARY]
130END
131GO
132
133-- Create the Course table.
134IF NOT EXISTS (SELECT * FROM sys.objects
135??????? WHERE object_id = OBJECT_ID(N'[dbo].[Course]')
136??????? AND type in (N'U'))
137BEGIN
138CREATE TABLE [dbo].[Course](
139??? [CourseID] [int] NOT NULL,
140??? [Title] [nvarchar](100) NOT NULL,
141??? [Credits] [int] NOT NULL,
142??? [DepartmentID] [int] NOT NULL,
143 CONSTRAINT [PK_School.Course] PRIMARY KEY CLUSTERED
144(
145??? [CourseID] ASC
146)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
147) ON [PRIMARY]
148END
149GO
150
151-- Create the OfficeAssignment table.
152IF NOT EXISTS (SELECT * FROM sys.objects
153??????? WHERE object_id = OBJECT_ID(N'[dbo].[OfficeAssignment]')
154??????? AND type in (N'U'))
155BEGIN
156CREATE TABLE [dbo].[OfficeAssignment](
157??? [InstructorID] [int] NOT NULL,
158??? [Location] [nvarchar](50) NOT NULL,
159??? 1742015336 [timestamp] NOT NULL,
160 CONSTRAINT [PK_OfficeAssignment] PRIMARY KEY CLUSTERED
161(
162??? [InstructorID] ASC
163)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
164) ON [PRIMARY]
165END
166GO
167
168-- Define the relationship between OnsiteCourse and Course.
169IF NOT EXISTS (SELECT * FROM sys.foreign_keys
170?????? WHERE object_id = OBJECT_ID(N'[dbo].[FK_OnsiteCourse_Course]')
171?????? AND parent_object_id = OBJECT_ID(N'[dbo].[OnsiteCourse]'))
172ALTER TABLE [dbo].[OnsiteCourse]? WITH CHECK ADD
173?????? CONSTRAINT [FK_OnsiteCourse_Course] FOREIGN KEY([CourseID])
174REFERENCES [dbo].[Course] ([CourseID])
175GO
176ALTER TABLE [dbo].[OnsiteCourse] CHECK
177?????? CONSTRAINT [FK_OnsiteCourse_Course]
178GO
179
180-- Define the relationship between OnlineCourse and Course.
181IF NOT EXISTS (SELECT * FROM sys.foreign_keys
182?????? WHERE object_id = OBJECT_ID(N'[dbo].[FK_OnlineCourse_Course]')
183?????? AND parent_object_id = OBJECT_ID(N'[dbo].[OnlineCourse]'))
184ALTER TABLE [dbo].[OnlineCourse]? WITH CHECK ADD
185?????? CONSTRAINT [FK_OnlineCourse_Course] FOREIGN KEY([CourseID])
186REFERENCES [dbo].[Course] ([CourseID])
187GO
188ALTER TABLE [dbo].[OnlineCourse] CHECK
189?????? CONSTRAINT [FK_OnlineCourse_Course]
190GO
191
192-- Define the relationship between StudentGrade and Course.
193IF NOT EXISTS (SELECT * FROM sys.foreign_keys
194?????? WHERE object_id = OBJECT_ID(N'[dbo].[FK_StudentGrade_Course]')
195?????? AND parent_object_id = OBJECT_ID(N'[dbo].[StudentGrade]'))
196ALTER TABLE [dbo].[StudentGrade]? WITH CHECK ADD
197?????? CONSTRAINT [FK_StudentGrade_Course] FOREIGN KEY([CourseID])
198REFERENCES [dbo].[Course] ([CourseID])
199GO
200ALTER TABLE [dbo].[StudentGrade] CHECK
201?????? CONSTRAINT [FK_StudentGrade_Course]
202GO
203
204--Define the relationship between StudentGrade and Student.
205IF NOT EXISTS (SELECT * FROM sys.foreign_keys
206?????? WHERE object_id = OBJECT_ID(N'[dbo].[FK_StudentGrade_Student]')
207?????? AND parent_object_id = OBJECT_ID(N'[dbo].[StudentGrade]'))
208ALTER TABLE [dbo].[StudentGrade]? WITH CHECK ADD
209?????? CONSTRAINT [FK_StudentGrade_Student] FOREIGN KEY([StudentID])
210REFERENCES [dbo].[Person] ([PersonID])
211GO
212ALTER TABLE [dbo].[StudentGrade] CHECK
213?????? CONSTRAINT [FK_StudentGrade_Student]
214GO
215
216-- Define the relationship between CourseInstructor and Course.
217IF NOT EXISTS (SELECT * FROM sys.foreign_keys
218?? WHERE object_id = OBJECT_ID(N'[dbo].[FK_CourseInstructor_Course]')
219?? AND parent_object_id = OBJECT_ID(N'[dbo].[CourseInstructor]'))
220ALTER TABLE [dbo].[CourseInstructor]? WITH CHECK ADD
221?? CONSTRAINT [FK_CourseInstructor_Course] FOREIGN KEY([CourseID])
222REFERENCES [dbo].[Course] ([CourseID])
223GO
224ALTER TABLE [dbo].[CourseInstructor] CHECK
225?? CONSTRAINT [FK_CourseInstructor_Course]
226GO
227
228-- Define the relationship between CourseInstructor and Person.
229IF NOT EXISTS (SELECT * FROM sys.foreign_keys
230?? WHERE object_id = OBJECT_ID(N'[dbo].[FK_CourseInstructor_Person]')
231?? AND parent_object_id = OBJECT_ID(N'[dbo].[CourseInstructor]'))
232ALTER TABLE [dbo].[CourseInstructor]? WITH CHECK ADD
233?? CONSTRAINT [FK_CourseInstructor_Person] FOREIGN KEY([PersonID])
234REFERENCES [dbo].[Person] ([PersonID])
235GO
236ALTER TABLE [dbo].[CourseInstructor] CHECK
237?? CONSTRAINT [FK_CourseInstructor_Person]
238GO
239
240-- Define the relationship between Course and Department.
241IF NOT EXISTS (SELECT * FROM sys.foreign_keys
242?????? WHERE object_id = OBJECT_ID(N'[dbo].[FK_Course_Department]')
243?????? AND parent_object_id = OBJECT_ID(N'[dbo].[Course]'))
244ALTER TABLE [dbo].[Course]? WITH CHECK ADD
245?????? CONSTRAINT [FK_Course_Department] FOREIGN KEY([DepartmentID])
246REFERENCES [dbo].[Department] ([DepartmentID])
247GO
248ALTER TABLE [dbo].[Course] CHECK CONSTRAINT [FK_Course_Department]
249GO
250
251--Define the relationship between OfficeAssignment and Person.
252IF NOT EXISTS (SELECT * FROM sys.foreign_keys
253?? WHERE object_id = OBJECT_ID(N'[dbo].[FK_OfficeAssignment_Person]')
254?? AND parent_object_id = OBJECT_ID(N'[dbo].[OfficeAssignment]'))
255ALTER TABLE [dbo].[OfficeAssignment]? WITH CHECK ADD
256?? CONSTRAINT [FK_OfficeAssignment_Person] FOREIGN KEY([InstructorID])
257REFERENCES [dbo].[Person] ([PersonID])
258GO
259ALTER TABLE [dbo].[OfficeAssignment] CHECK
260?? CONSTRAINT [FK_OfficeAssignment_Person]
261GO
262
263-- Create InsertOfficeAssignment stored procedure.
264IF NOT EXISTS (SELECT * FROM sys.objects
265??????? WHERE object_id = OBJECT_ID(N'[dbo].[InsertOfficeAssignment]')
266??????? AND type in (N'P', N'PC'))
267BEGIN
268EXEC dbo.sp_executesql @statement = N'
269CREATE PROCEDURE [dbo].[InsertOfficeAssignment]
270??????? @InstructorID int,
271??????? @Location nvarchar(50)
272??????? AS
273??????? INSERT INTO dbo.OfficeAssignment (InstructorID, Location)
274??????? VALUES (@InstructorID, @Location);
275??????? IF @@ROWCOUNT > 0
276??????? BEGIN
277??????????? SELECT 1742015336 FROM OfficeAssignment
278??????????????? WHERE InstructorID=@InstructorID;
279??????? END
280'
281END
282GO
283
284--Create the UpdateOfficeAssignment stored procedure.
285IF NOT EXISTS (SELECT * FROM sys.objects
286??????? WHERE object_id = OBJECT_ID(N'[dbo].[UpdateOfficeAssignment]')
287??????? AND type in (N'P', N'PC'))
288BEGIN
289EXEC dbo.sp_executesql @statement = N'
290CREATE PROCEDURE [dbo].[UpdateOfficeAssignment]
291??????? @InstructorID int,
292??????? @Location nvarchar(50),
293??????? @OrigTimestamp timestamp
294??????? AS
295??????? UPDATE OfficeAssignment SET Location=@Location
296??????? WHERE InstructorID=@InstructorID AND 1742015336=@OrigTimestamp;
297??????? IF @@ROWCOUNT > 0
298??????? BEGIN
299??????????? SELECT 1742015336 FROM OfficeAssignment
300??????????????? WHERE InstructorID=@InstructorID;
301??????? END
302'
303END
304GO
305
306-- Create the DeleteOfficeAssignment stored procedure.
307IF NOT EXISTS (SELECT * FROM sys.objects
308??????? WHERE object_id = OBJECT_ID(N'[dbo].[DeleteOfficeAssignment]')
309??????? AND type in (N'P', N'PC'))
310BEGIN
311EXEC dbo.sp_executesql @statement = N'
312CREATE PROCEDURE [dbo].[DeleteOfficeAssignment]
313??????? @InstructorID int
314??????? AS
315??????? DELETE FROM OfficeAssignment
316??????? WHERE InstructorID=@InstructorID;
317'
318END
319GO
320
321-- Create the DeletePerson stored procedure.
322IF NOT EXISTS (SELECT * FROM sys.objects
323??????? WHERE object_id = OBJECT_ID(N'[dbo].[DeletePerson]')
324??????? AND type in (N'P', N'PC'))
325BEGIN
326EXEC dbo.sp_executesql @statement = N'
327CREATE PROCEDURE [dbo].[DeletePerson]
328??????? @PersonID int
329??????? AS
330??????? DELETE FROM Person WHERE PersonID = @PersonID;
331'
332END
333GO
334
335-- Create the UpdatePerson stored procedure.
336IF NOT EXISTS (SELECT * FROM sys.objects
337??????? WHERE object_id = OBJECT_ID(N'[dbo].[UpdatePerson]')
338??????? AND type in (N'P', N'PC'))
339BEGIN
340EXEC dbo.sp_executesql @statement = N'
341CREATE PROCEDURE [dbo].[UpdatePerson]
342??????? @PersonID int,
343??????? @LastName nvarchar(50),
344??????? @FirstName nvarchar(50),
345??????? @HireDate datetime,
346??????? @EnrollmentDate datetime
347??????? AS
348??????? UPDATE Person SET LastName=@LastName,
349??????????????? FirstName=@FirstName,
350??????????????? HireDate=@HireDate,
351??????????????? EnrollmentDate=@EnrollmentDate
352??????? WHERE PersonID=@PersonID;
353'
354END
355GO
356
357-- Create the InsertPerson stored procedure.
358IF NOT EXISTS (SELECT * FROM sys.objects
359??????? WHERE object_id = OBJECT_ID(N'[dbo].[InsertPerson]')
360??????? AND type in (N'P', N'PC'))
361BEGIN
362EXEC dbo.sp_executesql @statement = N'
363CREATE PROCEDURE [dbo].[InsertPerson]
364??????? @LastName nvarchar(50),
365??????? @FirstName nvarchar(50),
366??????? @HireDate datetime,
367??????? @EnrollmentDate datetime
368??????? AS
369??????? INSERT INTO dbo.Person (LastName,
370??????????????????? FirstName,
371??????????????????? HireDate,
372??????????????????? EnrollmentDate)
373??????? VALUES (@LastName,
374??????????? @FirstName,
375??????????? @HireDate,
376??????????? @EnrollmentDate);
377??????? SELECT SCOPE_IDENTITY() as NewPersonID;
378'
379END
380GO
381
382-- Create GetStudentGrades stored procedure.
383IF NOT EXISTS (SELECT * FROM sys.objects
384??????????? WHERE object_id = OBJECT_ID(N'[dbo].[GetStudentGrades]')
385??????????? AND type in (N'P', N'PC'))
386BEGIN
387EXEC dbo.sp_executesql @statement = N'
388CREATE PROCEDURE [dbo].[GetStudentGrades]
389??????????? @StudentID int
390??????????? AS
391??????????? SELECT EnrollmentID, Grade, CourseID, StudentID FROM dbo.StudentGrade
392??????????? WHERE StudentID = @StudentID
393'
394END
395GO
396
397-- Create GetDepartmentName stored procedure.
398IF NOT EXISTS (SELECT * FROM sys.objects
399??????????? WHERE object_id = OBJECT_ID(N'[dbo].[GetDepartmentName]')
400??????????? AND type in (N'P', N'PC'))
401BEGIN
402EXEC dbo.sp_executesql @statement = N'
403CREATE PROCEDURE [dbo].[GetDepartmentName]
404????? @ID int,
405????? @Name nvarchar(50) OUTPUT
406????? AS
407????? SELECT @Name = Name FROM Department
408????? WHERE DepartmentID = @ID
409'
410END
411GO
412
413-- Insert data into the Person table.
414USE School
415GO
416SET IDENTITY_INSERT dbo.Person ON
417GO
418INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
419VALUES (1, 'Abercrombie', 'Kim', '1995-03-11', null);
420INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
421VALUES (2, 'Barzdukas', 'Gytis', null, '2005-09-01');
422INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
423VALUES (3, 'Justice', 'Peggy', null, '2001-09-01');
424INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
425VALUES (4, 'Fakhouri', 'Fadi', '2002-08-06', null);
426INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
427VALUES (5, 'Harui', 'Roger', '1998-07-01', null);
428INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
429VALUES (6, 'Li', 'Yan', null, '2002-09-01');
430INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
431VALUES (7, 'Norman', 'Laura', null, '2003-09-01');
432INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
433VALUES (8, 'Olivotto', 'Nino', null, '2005-09-01');
434INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
435VALUES (9, 'Tang', 'Wayne', null, '2005-09-01');
436INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
437VALUES (10, 'Alonso', 'Meredith', null, '2002-09-01');
438INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
439VALUES (11, 'Lopez', 'Sophia', null, '2004-09-01');
440INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
441VALUES (12, 'Browning', 'Meredith', null, '2000-09-01');
442INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
443VALUES (13, 'Anand', 'Arturo', null, '2003-09-01');
444INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
445VALUES (14, 'Walker', 'Alexandra', null, '2000-09-01');
446INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
447VALUES (15, 'Powell', 'Carson', null, '2004-09-01');
448INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
449VALUES (16, 'Jai', 'Damien', null, '2001-09-01');
450INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
451VALUES (17, 'Carlson', 'Robyn', null, '2005-09-01');
452INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
453VALUES (18, 'Zheng', 'Roger', '2004-02-12', null);
454INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
455VALUES (19, 'Bryant', 'Carson', null, '2001-09-01');
456INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
457VALUES (20, 'Suarez', 'Robyn', null, '2004-09-01');
458INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
459VALUES (21, 'Holt', 'Roger', null, '2004-09-01');
460INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
461VALUES (22, 'Alexander', 'Carson', null, '2005-09-01');
462INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
463VALUES (23, 'Morgan', 'Isaiah', null, '2001-09-01');
464INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
465VALUES (24, 'Martin', 'Randall', null, '2005-09-01');
466INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
467VALUES (25, 'Kapoor', 'Candace', '2001-01-15', null);
468INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
469VALUES (26, 'Rogers', 'Cody', null, '2002-09-01');
470INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
471VALUES (27, 'Serrano', 'Stacy', '1999-06-01', null);
472INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
473VALUES (28, 'White', 'Anthony', null, '2001-09-01');
474INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
475VALUES (29, 'Griffin', 'Rachel', null, '2004-09-01');
476INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
477VALUES (30, 'Shan', 'Alicia', null, '2003-09-01');
478INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
479VALUES (31, 'Stewart', 'Jasmine', '1997-10-12', null);
480INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
481VALUES (32, 'Xu', 'Kristen', '2001-7-23', null);
482INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
483VALUES (33, 'Gao', 'Erica', null, '2003-01-30');
484INSERT INTO dbo.Person (PersonID, LastName, FirstName, HireDate, EnrollmentDate)
485VALUES (34, 'Van Houten', 'Roger', '2000-12-07', null);
486GO
487SET IDENTITY_INSERT dbo.Person OFF
488GO
489
490-- Insert data into the Department table.
491INSERT INTO dbo.Department (DepartmentID, [Name], Budget, StartDate, Administrator)
492VALUES (1, 'Engineering', 350000.00, '2007-09-01', 2);
493INSERT INTO dbo.Department (DepartmentID, [Name], Budget, StartDate, Administrator)
494VALUES (2, 'English', 120000.00, '2007-09-01', 6);
495INSERT INTO dbo.Department (DepartmentID, [Name], Budget, StartDate, Administrator)
496VALUES (4, 'Economics', 200000.00, '2007-09-01', 4);
497INSERT INTO dbo.Department (DepartmentID, [Name], Budget, StartDate, Administrator)
498VALUES (7, 'Mathematics', 250000.00, '2007-09-01', 3);
499GO
500
501
502-- Insert data into the Course table.
503INSERT INTO dbo.Course (CourseID, Title, Credits, DepartmentID)
504VALUES (1050, 'Chemistry', 4, 1);
505INSERT INTO dbo.Course (CourseID, Title, Credits, DepartmentID)
506VALUES (1061, 'Physics', 4, 1);
507INSERT INTO dbo.Course (CourseID, Title, Credits, DepartmentID)
508VALUES (1045, 'Calculus', 4, 7);
509INSERT INTO dbo.Course (CourseID, Title, Credits, DepartmentID)
510VALUES (2030, 'Poetry', 2, 2);
511INSERT INTO dbo.Course (CourseID, Title, Credits, DepartmentID)
512VALUES (2021, 'Composition', 3, 2);
513INSERT INTO dbo.Course (CourseID, Title, Credits, DepartmentID)
514VALUES (2042, 'Literature', 4, 2);
515INSERT INTO dbo.Course (CourseID, Title, Credits, DepartmentID)
516VALUES (4022, 'Microeconomics', 3, 4);
517INSERT INTO dbo.Course (CourseID, Title, Credits, DepartmentID)
518VALUES (4041, 'Macroeconomics', 3, 4);
519INSERT INTO dbo.Course (CourseID, Title, Credits, DepartmentID)
520VALUES (4061, 'Quantitative', 2, 4);
521INSERT INTO dbo.Course (CourseID, Title, Credits, DepartmentID)
522VALUES (3141, 'Trigonometry', 4, 7);
523GO
524
525-- Insert data into the OnlineCourse table.
526INSERT INTO dbo.OnlineCourse (CourseID, URL)
527VALUES (2030, 'http://www.fineartschool.net/Poetry');
528INSERT INTO dbo.OnlineCourse (CourseID, URL)
529VALUES (2021, 'http://www.fineartschool.net/Composition');
530INSERT INTO dbo.OnlineCourse (CourseID, URL)
531VALUES (4041, 'http://www.fineartschool.net/Macroeconomics');
532INSERT INTO dbo.OnlineCourse (CourseID, URL)
533VALUES (3141, 'http://www.fineartschool.net/Trigonometry');
534
535--Insert data into OnsiteCourse table.
536INSERT INTO dbo.OnsiteCourse (CourseID, Location, Days, [Time])
537VALUES (1050, '123 Smith', 'MTWH', '11:30');
538INSERT INTO dbo.OnsiteCourse (CourseID, Location, Days, [Time])
539VALUES (1061, '234 Smith', 'TWHF', '13:15');
540INSERT INTO dbo.OnsiteCourse (CourseID, Location, Days, [Time])
541VALUES (1045, '121 Smith','MWHF', '15:30');
542INSERT INTO dbo.OnsiteCourse (CourseID, Location, Days, [Time])
543VALUES (4061, '22 Williams', 'TH', '11:15');
544INSERT INTO dbo.OnsiteCourse (CourseID, Location, Days, [Time])
545VALUES (2042, '225 Adams', 'MTWH', '11:00');
546INSERT INTO dbo.OnsiteCourse (CourseID, Location, Days, [Time])
547VALUES (4022, '23 Williams', 'MWF', '9:00');
548
549-- Insert data into the CourseInstructor table.
550INSERT INTO dbo.CourseInstructor(CourseID, PersonID)
551VALUES (1050, 1);
552INSERT INTO dbo.CourseInstructor(CourseID, PersonID)
553VALUES (1061, 31);
554INSERT INTO dbo.CourseInstructor(CourseID, PersonID)
555VALUES (1045, 5);
556INSERT INTO dbo.CourseInstructor(CourseID, PersonID)
557VALUES (2030, 4);
558INSERT INTO dbo.CourseInstructor(CourseID, PersonID)
559VALUES (2021, 27);
560INSERT INTO dbo.CourseInstructor(CourseID, PersonID)
561VALUES (2042, 25);
562INSERT INTO dbo.CourseInstructor(CourseID, PersonID)
563VALUES (4022, 18);
564INSERT INTO dbo.CourseInstructor(CourseID, PersonID)
565VALUES (4041, 32);
566INSERT INTO dbo.CourseInstructor(CourseID, PersonID)
567VALUES (4061, 34);
568GO
569
570--Insert data into the OfficeAssignment table.
571INSERT INTO dbo.OfficeAssignment(InstructorID, Location)
572VALUES (1, '17 Smith');
573INSERT INTO dbo.OfficeAssignment(InstructorID, Location)
574VALUES (4, '29 Adams');
575INSERT INTO dbo.OfficeAssignment(InstructorID, Location)
576VALUES (5, '37 Williams');
577INSERT INTO dbo.OfficeAssignment(InstructorID, Location)
578VALUES (18, '143 Smith');
579INSERT INTO dbo.OfficeAssignment(InstructorID, Location)
580VALUES (25, '57 Adams');
581INSERT INTO dbo.OfficeAssignment(InstructorID, Location)
582VALUES (27, '271 Williams');
583INSERT INTO dbo.OfficeAssignment(InstructorID, Location)
584VALUES (31, '131 Smith');
585INSERT INTO dbo.OfficeAssignment(InstructorID, Location)
586VALUES (32, '203 Williams');
587INSERT INTO dbo.OfficeAssignment(InstructorID, Location)
588VALUES (34, '213 Smith');
589
590-- Insert data into the StudentGrade table.
591INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
592VALUES (2021, 2, 4);
593INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
594VALUES (2030, 2, 3.5);
595INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
596VALUES (2021, 3, 3);
597INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
598VALUES (2030, 3, 4);
599INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
600VALUES (2021, 6, 2.5);
601INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
602VALUES (2042, 6, 3.5);
603INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
604VALUES (2021, 7, 3.5);
605INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
606VALUES (2042, 7, 4);
607INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
608VALUES (2021, 8, 3);
609INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
610VALUES (2042, 8, 3);
611INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
612VALUES (4041, 9, 3.5);
613INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
614VALUES (4041, 10, null);
615INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
616VALUES (4041, 11, 2.5);
617INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
618VALUES (4041, 12, null);
619INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
620VALUES (4061, 12, null);
621INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
622VALUES (4022, 14, 3);
623INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
624VALUES (4022, 13, 4);
625INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
626VALUES (4061, 13, 4);
627INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
628VALUES (4041, 14, 3);
629INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
630VALUES (4022, 15, 2.5);
631INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
632VALUES (4022, 16, 2);
633INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
634VALUES (4022, 17, null);
635INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
636VALUES (4022, 19, 3.5);
637INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
638VALUES (4061, 20, 4);
639INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
640VALUES (4061, 21, 2);
641INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
642VALUES (4022, 22, 3);
643INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
644VALUES (4041, 22, 3.5);
645INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
646VALUES (4061, 22, 2.5);
647INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
648VALUES (4022, 23, 3);
649INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
650VALUES (1045, 23, 1.5);
651INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
652VALUES (1061, 24, 4);
653INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
654VALUES (1061, 25, 3);
655INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
656VALUES (1050, 26, 3.5);
657INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
658VALUES (1061, 26, 3);
659INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
660VALUES (1061, 27, 3);
661INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
662VALUES (1045, 28, 2.5);
663INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
664VALUES (1050, 28, 3.5);
665INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
666VALUES (1061, 29, 4);
667INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
668VALUES (1050, 30, 3.5);
669
670INSERT INTO dbo.StudentGrade (CourseID, StudentID, Grade)
671VALUES (1061, 30, 4);
672GO

3:RIA之ADO.NET ENTITY DATA MODEL

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

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

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

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

進入下一步:

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

點擊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進行的操作。目前可用操作如下:

4:針對web EMD的測試

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

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

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

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

view sourceprint?
01public string GetConnectionString()
02{
03??? string providerName = "System.Data.SqlClient";
04??? string serverName = "192.168.0.96";
05??? string databaseName = "mysample";
06??? SqlConnectionStringBuilder sqlBuilder = new SqlConnectionStringBuilder();
07??? sqlBuilder.DataSource = serverName;
08??? sqlBuilder.InitialCatalog = databaseName;
09??? sqlBuilder.IntegratedSecurity = false;
10??? sqlBuilder.UserID = "sa";
11??? sqlBuilder.Password = "sasa";
12??? string providerString = sqlBuilder.ToString();
13??? EntityConnectionStringBuilder entityBuilder = new EntityConnectionStringBuilder();
14??? entityBuilder.Provider = providerName;
15??? entityBuilder.ProviderConnectionString = providerString;
16??? entityBuilder.Provider = providerName;
17??? entityBuilder.Metadata = "res://*/Modelmysample.csdl|res://*/Modelmysample.ssdl|res://*/Modelmysample.msl";
18??? return entityBuilder.ToString();
19}

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

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

5:Domain Service Class

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

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

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

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

6:Ria Service數據流轉

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

EDM:直接操作數據庫;

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

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

7:最終展示

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

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

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

最后界面顯示:

8:問題

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

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

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

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

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

本示例源碼下載:SilverlightApplicationSchool20110612.zip

轉載于:https://www.cnblogs.com/fcsh820/archive/2011/07/02/2096177.html

總結

以上是生活随笔為你收集整理的(转)使用Entity Framework和WCF Ria Services开发SilverLight之1:简单模型的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产成人一区二区三区小说 | 性xxxxbbbb| 国产精品一区二区三区在线播放 | 日本不卡一区二区三区在线观看 | 亚洲一区二区三区中文字幕 | 毛片哪里看 | 亚洲国产图片 | 国产老妇伦国产熟女老妇视频 | 91成人免费看 | 男同志毛片特黄毛片 | 美女午夜视频 | 先锋影音av中文字幕 | 国产无套精品一区二区 | 国产精品一线天粉嫩av | 在线成人中文字幕 | 亚洲一区二区三区国产 | 国产视频不卡 | 小视频在线| 人妻丰满熟妇av无码区不卡 | 亚洲综合日韩精品欧美综合区 | 亚洲av综合一区二区 | 国产精品成熟老女人 | 精品视频在线观看 | 在线观看黄色 | 久久123| av在线播放一区二区三区 | 国产xxxxx视频 | 在线观看免费高清 | 风韵多水的老熟妇 | caopor在线 | 人人舔人人爽 | 黄片毛片在线观看 | 欧美性网站| 亚洲欧美日韩色图 | 国模叶桐尿喷337p人体 | 亚洲精品视频中文字幕 | 精品久久久久久久免费人妻 | 美女av在线免费观看 | 一级伦理农村妇女愉情 | 亚洲精品一二 | 黄色三级大片 | 国产黄色自拍视频 | www.精品久久| 九九精品国产 | 日韩欧美一级片 | 久久中文免费视频 | 亚洲国产视频在线 | 亚洲av永久无码精品放毛片 | 操女网站 | 一级黄色免费大片 | 特黄网站| 久久在线视频精品 | 国产精自产拍久久久久久蜜 | 亚洲第一页色 | 国产寡妇亲子伦一区二区三区四区 | 亚洲人成无码www久久久 | 医生强烈淫药h调教小说视频 | 辟里啪啦国语版免费观看 | 久久免费福利 | 性高潮视频在线观看 | 日韩αv | 亚洲成人高清在线观看 | 成人高潮片 | 色噜噜在线 | 色欧美在线 | 成都4电影免费高清 | 免费人成网站 | 白浆av | 中文在线国产 | 性色av蜜臀av色欲av | 国产福利影院 | 精品一区二区久久 | 激情综合色| 亚洲精品高潮 | 欧美成人高潮一二区在线看 | 国产系列精品av | 亚洲天堂资源在线 | 亚洲av无码电影在线播放 | 前任攻略在线观看免费完整版 | 黑料网在线观看 | 精品自拍视频在线观看 | 欧美激情欧美激情在线五月 | 日韩一级免费视频 | 关之琳三级全黄做爰在线观看 | 免费av在线网址 | 97超碰人人| 天堂在线精品视频 | 色噜噜在线播放 | 一区二区蜜桃 | 探花国产精品一区二区 | 特一级黄色大片 | 国产综合99 | 黄色正能量网站 | 免费视频精品 | 69av片| 亚洲经典一区二区三区 | 国产人妖一区 | 午夜影院性 | av综合导航|