ADO.NET Data Service
[2] 2.添加ADO.NET数据服务
[3] 3.NET客启访问DataService
[4] 4.Silverlight客启访问DataService
[5] 5.URL访问
[6] 6.WEB方法
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) { } } } |