|
關(guān)于ADO.NET Entity Framework部分的內(nèi)容見(jiàn)ADO.NET Entity Framework(1-4)
http://www.cnblogs.com/foundation/archive/2008/10/06/1304718.html
本文例子下載: http://files.cnblogs.com/wxwinter/lz.rar
ADO.NET Data Service介紹
1.ADO.NET Data Service的DataServiceHost是一個(gè)WCF Service,由System.Data.Services.DataService提供來(lái)自NET3.5 SP1 類庫(kù)中的System.Data.Services.dll
2.DataServices會(huì)自動(dòng)為加載的Entity對(duì)象生成具有增查刪改功能的WCF服務(wù)
3.DataServices是以Http方式與客戶端進(jìn)行通信.任何可以實(shí)現(xiàn)HTTP訪問(wèn)的客戶端,都可以與DataServices交互
4. NET3.5 SP1的客戶端可以使用System.Data.Services.Client.DataServiceContext與DataServices交互,該類來(lái)自NET3.5 SP1 類庫(kù)中的System.Data.Services.Client.dll 文件
5. Silverlight 2.0客戶端可以使用System.Data.Services.Client.DataServiceContext與DataServices交互,該類來(lái)自Silverlight 2.0 類庫(kù)中的System.Data.Services.Client 文件
6.DataServices提供ATOM與JSON兩種格式用來(lái)描述數(shù)據(jù)結(jié)構(gòu),說(shuō)明如下:
ATOM | 與RSS類似,也是建立在XML數(shù)據(jù)格式的基礎(chǔ)之上的 Atom相對(duì)RSS格式而言,進(jìn)行了擴(kuò)展,提供了比RSS更多的項(xiàng)目屬性 |
JSON | 格式如下 { "name": "wxd", "time": "2008/10/10 10:10", "value": 123.456, "list": [ "wxwinter", "lzm"] } |
public class myWebDataService : DataService<myDBEntities> { public static void InitializeService(IDataServiceConfiguration config) { config.SetEntitySetAccessRule("*", EntitySetRights.All); // * :表示全部實(shí)體集 // EntitySetRights.All : 表示全部的操作權(quán)限 } } |
NET客啟訪問(wèn)DataService
引用數(shù)據(jù)服務(wù)
查詢
//查詢 private void button1_Click(object sender, EventArgs e) { Uri url = new Uri("http://localhost:1468/myWebDataService.svc"); myService.myDBEntities server = new WinFormClient.myService.myDBEntities(url);
foreach (var v in server.tabA) {
Console.WriteLine("{0},{1},{2}", v.a, v.b, v.c); } //- foreach (var v in server.tabX.Where(p=>p.x=="002")) {
Console.WriteLine("{0},{1},{2}", v.x, v.y, v.z); }
}
lzm ,2 ,5 wxd ,1 ,4 wxwinter ,3 ,6 002 ,8 ,llzzmm |
Silverlight客啟訪問(wèn)DataService
Silverlight 2.0 可以利用兩種方法與DataServices交互:
- HttpWebRequest 與 HttpWebResponse
- System.Data.Services.Client.DataServiceContext
Silverlight 2.0 是使用異步方法來(lái)連接遠(yuǎn)程數(shù)據(jù)源。
LINQ 的 select ,要用 BeginExecute() 和 EndExecute()
LINQ 的 SaveChanges(),要用 BeginSaveChanges() 和 EndSaveChanges()
引用服務(wù)
xaml頁(yè)面
<StackPanel Loaded="StackPanel_Loaded"> <data:DataGrid Name="dg">data:DataGrid> <Button Content="DataServiceContext方式加載數(shù)據(jù)" Width="200" Click="loadData_Click" /> <Button Content="WebClient方式加載數(shù)據(jù)" Width="200" Click="loadData2_Click" /> <Button Content="添加" Width="200" Click="add_Click" /> <Button Content="修改" Width="200" Click="edit_Click" /> <Button Content="刪除" Width="200" Click="del_Click" /> StackPanel> |
myService.myDBEntities server; private void StackPanel_Loaded(object sender, RoutedEventArgs e) { Uri url = new Uri("http://localhost:1468/myWebDataService.svc"); server = new myService.myDBEntities(url); } void saveChanges_completed(IAsyncResult obj) {
} |
DataService 支持URL方式訪問(wèn)
格式 | http://[Url]/[ServiceName]/[EntityName]/[NavigationOptions]?[QueryOptions] |
Url: 數(shù)據(jù)服務(wù)所在的網(wǎng)址 ServiceName: 數(shù)據(jù)服務(wù)的名稱 EntityName: Entity 名稱或是 Service 方法名稱 NavigationOptions: 查詢 Entity 中關(guān)聯(lián)的設(shè)定 QueryOptions: 查詢的選項(xiàng) |
WEB方法
[WebGet] 使用 GET方式訪問(wèn)
[WebInvoke] 使用 POST/PUT/DELETE 方式訪問(wèn)
服務(wù)
public class myWebDataService : DataService<myDBEntities> {
public static void InitializeService(IDataServiceConfiguration config) { config.SetEntitySetAccessRule("*", EntitySetRights.All); // * :表示全部實(shí)體集 // EntitySetRights.All : 表示全部的操作權(quán)限
// config.SetServiceOperationAccessRule("getTabA", ServiceOperationRights.All); config.SetServiceOperationAccessRule("*", ServiceOperationRights.All); // * :表示全部實(shí)體集 // ServiceOperationRights.All : 表示全部的操作權(quán)限 }
[WebGet] public IQueryable<tabA> getTabA(string a) { var v= CurrentDataSource.tabA.Where(p => p.a == a); return v; }
[WebInvoke] public IQueryable<tabX> getTabX(string x) { var v = CurrentDataSource.tabX.Where(p => p.x == x); return v; } } |
NET技術(shù):ADO.NET Data Service,轉(zhuǎn)載需保留來(lái)源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。