您的位置:知识库 » .NET技术

ADO.NET Data Service

作者: WXWinter(冬)  来源: 博客园  发布时间: 2008-12-16 00:01  阅读: 13449 次  推荐: 0   原文链接   [收藏]  

 

WEB方法

[WebGet] 使用 GET方式访问

[WebInvoke] 使用 POST/PUT/DELETE 方式访问

服务

public class myWebDataService : DataService<myDBEntities>

{

 

public static void InitializeService(IDataServiceConfiguration config)

{

config.SetEntitySetAccessRule("*", EntitySetRights.All);

// * :表示全部实体集

// EntitySetRights.All : 表示全部的操作权限

 

// config.SetServiceOperationAccessRule("getTabA", ServiceOperationRights.All);

config.SetServiceOperationAccessRule("*", ServiceOperationRights.All);

// * :表示全部实体集

// ServiceOperationRights.All : 表示全部的操作权限

}

 

[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;

}

}

 

访问

方法名?参数='值

http://localhost:1468/myWebDataService.svc/getTabA?a='lzm'

getTabA

http://localhost:1468/myWebDataService.svc/getTabA

2008-11-17T02:23:29Z

http://localhost:1468/myWebDataService.svc/tabA('lzm%20%20%20%20%20%20%20')

2008-11-17T02:23:29Z

lzm

2

5

 

 

 

拦截器

查询拦截:当你仅仅想把具有某种状态或者特征的数据返回给客户端时,用拦截查询就可以实现

修改拦截:可以拦截提交到服务器的的数据更新操作:Add, Change ,Delete

查询拦截

public class myWebDataService : DataService<myDBEntities>

{

 

public static void InitializeService(IDataServiceConfiguration config)

{

config.SetEntitySetAccessRule("*", EntitySetRights.All);

// * :表示全部实体集

// EntitySetRights.All : 表示全部的操作权限

}

 

[QueryInterceptor("tabX")]

public System.Linq.Expressions.Expression<Func<tabX, bool>> query_tabX()

{

return p => p.z != "wwxxdd"; //为真表示允许查询

}

 

}

不使用QueryInterceptor的结果

 

使用QueryInterceptor的结果

 

修改拦截器

public class myWebDataService : DataService<myDBEntities>

{

 

public static void InitializeService(IDataServiceConfiguration config)

{

config.SetEntitySetAccessRule("*", EntitySetRights.All);

// * :表示全部实体集

// EntitySetRights.All : 表示全部的操作权限

}

[ChangeInterceptor("tabX")]

public void change_tabX(tabX en, UpdateOperations operation)

{

//-

if (operation == UpdateOperations.Add)

{

if (string.IsNullOrEmpty(en.y))

{

//如果[y]为空的处理代码

}

}

//-

if (operation == UpdateOperations.Change)

{ }

//-

if (operation == UpdateOperations.Delete)

{ }

}

}

0
0

.NET技术热门文章

    .NET技术最新文章

      最新新闻

        热门新闻