关于ADO.NET Entity Framework部分的内容见ADO.NET Entity Framework(1-4)
http://www.cnblogs.com/foundation/archive/2008/10/06/1304718.html
本文例子下载: http://files.cnblogs.com/wxwinter/lz.rar
目录
4 Silverlight客启访问DataService 18
ADO.NET Data Service介绍
1.ADO.NET Data Service的DataServiceHost是一个WCF Service,由System.Data.Services.DataService<T>提供来自NET3.5 SP1 类库中的System.Data.Services.dll
2.DataServices会自动为加载的Entity对象生成具有增查删改功能的WCF服务
3.DataServices是以Http方式与客户端进行通信.任何可以实现HTTP访问的客户端,都可以与DataServices交互
4. NET3.5 SP1的客户端可以使用System.Data.Services.Client.DataServiceContext与DataServices交互,该类来自NET3.5 SP1 类库中的System.Data.Services.Client.dll 文件
5. Silverlight 2.0客户端可以使用System.Data.Services.Client.DataServiceContext与DataServices交互,该类来自Silverlight 2.0 类库中的System.Data.Services.Client 文件
6.DataServices提供ATOM与JSON两种格式用来描述数据结构,说明如下:
ATOM |
与RSS类似,也是建立在XML数据格式的基础之上的 Atom相对RSS格式而言,进行了扩展,提供了比RSS更多的项目属性 |
JSON |
格式如下 { "name": "wxd", "time": "2008/10/10 10:10", "value": 123.456, "list": [ "wxwinter", "lzm"] } |
创建DataService项目
数据表
tabA
tabX
创建ASPNET项目
添架ADONET Entity模型
添加ADO.NET数据服务
{
{ config.SetEntitySetAccessRule("*", EntitySetRights.All);
} } |
在浏览器中查看
NET客启访问DataService
引用数据服务
查询
{
myService.myDBEntities server = new WinFormClient.myService.myDBEntities(url);
{
}
{
}
}
lzm ,2 ,5 wxd ,1 ,4 wxwinter ,3 ,6 002 ,8 ,llzzmm |
添加
{
myService.myDBEntities server = new WinFormClient.myService.myDBEntities(url);
server.AddTotabA(new myService.tabA() { a = "wxdlzm", b = "333", c = "xxx" });
server.SaveChanges(); } |
修改
{
myService.myDBEntities server = new WinFormClient.myService.myDBEntities(url);
v.b = "hello"; server.UpdateObject(v); server.SaveChanges(); }
|
删除
{
myService.myDBEntities server = new WinFormClient.myService.myDBEntities(url);
server.DeleteObject(v); server.SaveChanges(); }
|
异步查询
//异步查询
myService.myDBEntities server1;
{
server1 = new WinFormClient.myService.myDBEntities(url);
server1.BeginExecute<myService.tabX>(urlE, new }
{
{
}
} |
Silverlight客启访问DataService
Silverlight 2.0 可以利用两种方法与DataServices交互:
- HttpWebRequest 与 HttpWebResponse
- System.Data.Services.Client.DataServiceContext
Silverlight 2.0 是使用异步方法来连接远程数据源。
LINQ 的 select ,要用 BeginExecute() 和 EndExecute()
LINQ 的 SaveChanges(),要用 BeginSaveChanges() 和 EndSaveChanges()
引用服务
xaml页面
|
myService.myDBEntities server;
{
server = new myService.myDBEntities(url); }
{
} |
查询(WebClient方式)
{
client.OpenReadCompleted += new client.OpenReadAsync(uri); }
{
{
{ a= x.Descendants(d + "a").First().Value, b = x.Descendants(d + "b").First().Value, c = x.Descendants(d + "c").First().Value }; dg.ItemsSource = list; } } |
查询
{
server.BeginExecute<myService.tabX>(urlE, new }
{
} |
添加
{ server.AddTotabX(new myService.tabX() { x="007",z="sss",y="sss" }); server.BeginSaveChanges(new } |
编辑
{
server.BeginExecute<myService.tabX>(urlE, new }
{
tp.y = "hello"; server.UpdateObject(tp); server.BeginSaveChanges(new } |
删除
{
server.BeginExecute<myService.tabX>(urlE, new }
{
server.DeleteObject(tp); server.BeginSaveChanges(new
} |
URL访问
DataService 支持URL方式访问
格式 |
http://[Url]/[ServiceName]/[EntityName]/[NavigationOptions]?[QueryOptions] |
Url: 数据服务所在的网址 ServiceName: 数据服务的名称 EntityName: Entity 名称或是 Service 方法名称 NavigationOptions: 查询 Entity 中关联的设定 QueryOptions: 查询的选项 |
运算符
运算符 |
说明 |
and |
|
or |
|
not |
|
eq |
= |
ne |
!= |
lt |
< |
gt |
> |
le |
<= |
ge |
>= |
add |
+ |
sub |
- |
mul |
* |
div |
/ |
mod |
余数 |
() |
关键字
expand |
类似于LINQ中的LoadOptions,以此来指定加载此对象相关的通过expand指定的对象。如果需要加载多个对象,用逗号分隔。 |
orderby |
指定排序方式。语法为:$orderby=Field [ASC|DESC], [Field[ASC|DESC]] |
Skip Top |
类似于LINQ中的Skip(PageSize * PageIndex).Take(PageSize)用来实现分页。 |
Filter |
通过filter这个参数可以在URL里传递过滤条件。 |
函数
bool substringof(string p0, string p1) |
||
bool startswith(string p0, string p1) |
||
int indexof(string arg) |
||
string remove(string p |