Silverlight访问数据库之ADO.NET Entity Framework篇

Silverlight访问数据库之ADO.NET Entity Framework篇,第1张

概述在今天的教程中,我将为大家介绍怎样使用ADO.NET Entity Framework来与数据库进行基本的交互。 概览 为了能够使事情变得简单易做,这里我先为大家讲解怎样从数据库检索数据并返回至DataGrid。这个例子将为我们展示如下的功能: 1)点击[Get Data]按钮向后台发送获取数据消息 2)后台数据库将得到的相关数据传回至DataGrid。 这里,如果用的测试数据的量较大的话可以观测

在今天的教程中,我将为大家介绍怎样使用ADO.NET Entity Framework来与数据库进行基本的交互。

概览

为了能够使事情变得简单易做,这里我先为大家讲解怎样从数据库检索数据并返回至DataGrID。这个例子将为我们展示如下的功能:

1)点击[Get Data]按钮向后台发送获取数据消息

2)后台数据库将得到的相关数据传回至DataGrID。

这里,如果用的测试数据的量较大的话可以观测到明显的延时现象(这就是异步 *** 作带来的效果)。

简单的准备工作

为了能使ADO.NET Entity Framework正常工作,请为你的VS2008打上SP1服务包。

附SP1下载地址:

中文版:

http://www.microsoft.com/downloadS/details.aspx?familyID=27673C47-B3B5-4C67-BD99-84E525B5CE61&displaylang=zh-cn

英文版:

http://www.microsoft.com/downloadS/details.aspx?familyID=27673C47-B3B5-4C67-BD99-84E525B5CE61&displaylang=en

创建项目

点击菜单file->New->Project...,打开New Project对话框。在Project types中选择Web,在右侧的Templates中选择ASP.NET Web Application,输入项目名为testDataGrID,点击OK按钮,完成创建。(见图1)

图1:创建ASP.NET Web Application

接着,右击Solution Explorer中Solution 'testDataGrID'根文件夹,依次点击菜单选项Add->New Project...。在Project types中选择Silverlight,在右侧的Templates中选择Silverlight Application,输入项目名为SilverlightClIEnt,点击OK按钮,完成创建。(见图2和图3)

图2:新建Silverlight项目

图3:添加新项目

在d出的对话框中,按下图进行设置,然后点击OK按钮。

图4:新建Silverlight应用程序

创建数据库

为了加快实验速度,我们使用sql Server Express 2008作为后台数据库。

按如下步骤建立数据库及数据表:

1)右击testDataGrID文件夹下的App_Data文件夹,依次点击菜单选项Add->New Item...。在d出的对话框中,输入数据库名为Employees.mdf,点击Add按钮。

图5:创建数据库Employees

双击Employees.mdf,打开Server Explorer窗口。按下两图所示添加新数据表,将该表命名为Employee。

图6:添加新数据表

图7:Employee表设置

输入一些测试数据。

图8:输入一些测试数据

创建ADO.NET Entity数据库实体模型

右击testDataGrID文件夹,点击菜单选项Add->New Item...。按下图进行 *** 作,将数据库实体命名为EmployeeModel.edmx,点击Add按钮。

图9:新建实体模型

在d出对话框中选Generate from database,点击Next按钮。按下图进行 *** 作,直到Finish为止。

图10:从数据库生成模型

图11:选择数据链接

图12:选择数据库对象

这样数据模型就建立完毕。

建立ADO.NET Data Service数据通讯服务

右击testDataGrID文件夹,依次点击Add->New Item...。然后按下图 *** 作,将ADO.NET Data Service服务命名为EmployeeInfoService.svc。

图13:创建ADO.NET Data Service

修改EmployeeInfoService.svc.cs代码如下:

using System;using System.Collections.Generic;using System.Data.Services;using System.linq;using System.ServiceModel.Web;using System.Web;namespace testDataGrID{public class EmployeeInfoService : DataService<EmployeesEntitIEs>{public static voID InitializeService(IDataServiceConfiguration config){config.SetEntitySetAccessRule("*",EntitySetRights.All);config.SetServiceOperationAccessRule(ServiceOperationRights.All);}}}

按Ctrl+Shift+B进行整个项目的编译(非常重要,不然数据服务引用会出错!)

右击刚才创建的EmployeeInfoService.svc,选择菜单选项VIEw in browser(如下图),配置成功的话会出现下图所示的页面。

图14:查看Web Service配置

图15:配置成功时出现的页面

右击SilverlightClIEnt项目文件夹下的References,选择Add Service References...。接着,在d出的对话框中点击discover按钮,Services中出现刚才我们创建的EmployeeInfoService.svc,点击其左边的“+”展开符号,之后出现服务搜寻,结束后将namespace改为EmployeeServiceReference。(见下图)。

图16:添加服务引用

这样,建立ADO.NET Data Service数据通讯服务的过程就此结束。

创建SilverlightClIEnt界面及组件代码

MainPage.xaml代码:

<UserControlxmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.microsoft.com/Expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"mc:Ignorable="d" xmlns:data="clr-namespace:System.windows.Controls;assembly=System.windows.Controls.Data" x:Class="SilverlightClIEnt.MainPage"d:DesignWIDth="640" d:DesignHeight="480"><GrID x:name="LayoutRoot" Background="White" WIDth="320" Height="220"><data:DataGrID x:name="dgEmployee" Height="150" margin="8,8,0" VerticalAlignment="top" HorizontalAlignment="left" WIDth="304"/><button x:name="btnGetData" Height="28" HorizontalAlignment="left" margin="8,171,0" VerticalAlignment="top" WIDth="98" Content="Get Data"/></GrID></UserControl>

MainPage.xaml.cs代码:

using System;using System.Collections.Generic;using System.linq;using System.Net;using System.windows;using System.windows.Controls;using System.windows.documents;using System.windows.input;using System.windows.Media;using System.windows.Media.Animation;using System.windows.Shapes;using System.Data.Services.ClIEnt;//引入System.Data.Services.ClIEnt命名空间using SilverlightClIEnt.EmployeeServiceReference;//引入数据服务所在命名空间namespace SilverlightClIEnt{public partial class MainPage : UserControl{public MainPage(){InitializeComponent();//注册事件触发处理this.btnGetData.Click += new RoutedEventHandler(btnGetData_Click);}voID btnGetData_Click(object sender,175)">RoutedEventArgs e){EmployeesEntitIEs proxy = new EmployeesEntitIEs(new Uri("EmployeeInfoService.svc",175)">UriKind.relative));var query = from c in proxy.Employee select c;DataServicequery<Employee> userquery = (Employee>)query;userquery.BeginExecute(new AsyncCallback(OnLoadComplete),query);//异步调用}voID OnLoadComplete(IAsyncResult result){Employee> query = (Employee>)result.AsyncState;dgEmployee.ItemsSource = query.EndExecute(result).ToList();//将最终结果传给DataGrID}}}

 

最后,按F5键进行编译测试。

最终效果图


转自http://www.silverlightchina.net/HTML/tips/2009/1210/381.HTML

总结

以上是内存溢出为你收集整理的Silverlight访问数据库之ADO.NET Entity Framework篇全部内容,希望文章能够帮你解决Silverlight访问数据库之ADO.NET Entity Framework篇所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1015233.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存