Silverlight WCF RIA服务(十)Domain Services 3

苹果与虫子  【描述】 你买了一箱n个苹果,很不幸的是买完时箱子里混进了一条虫子。虫子每x小时能吃掉一个苹果,假设虫子在吃完一个苹果之前不会吃另一个,那么经过y小时你还有多少个完整的苹果? 【输入】 输入仅一行,包括n,x和y(均为整数)。 【输出】 输出仅一行,剩下的苹果数(完整的苹果数)。 【输入示例】 10 4 9 【输出示例】 7 阅读详情

如何在Domain Services中添加商业逻辑
即使在Domain Services中已经包含了更新、插入、删除等操作,但我们还是经常需要添加一些商业逻辑来管理那些修改数据的过程。还可能需要添加一些有别于传统的新的查询、更新等操作。这节中,我们将学习如何修改数据操作来满足商业要求,还学习如何添加一个命名的更新named update方法和一个调用invoke的操作
在操作数据的方法中添加商业逻辑


 

  1. 创建更新、插入、删除等应用程序所需的方法 :当在添加新的域服务类的对话框中生成域服务时,选择允许编辑(Enable editing)选项。或添加满足这些操作所需签名的方法。
  2. 在这些方法中,添加代码来指定处理需求的逻辑。
  3. 添加其他满足商业需求的方法。如果不想方法作为服务而公开,可以标记[IgnoreOperationAttribute]属性。

下面是一个插入的方法,此方法指派一个销售员。如果在公司的数据库中有顾客,RetrieveSalesPersonForCompany方法从公司中检索销售员的名字。这个方法标记了IgnoreOperationAttribute属性,所以客户端不能调用这个方法。
 

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
public void InsertCustomer(Customer customer
{
if (customer.SalesPerson == String.Empty)
{
customer.SalesPerson = RetrieveSalesPersonForCompany(customer.CompanyName);
}
this.ObjectContext.AddToCustomers(customer);
}
 
[IgnoreOperation]
public string RetrieveSalesPersonForCompany(string companyname)
{
 
string salesPersonToAssign = "unassigned";
 
List<CUSTOMER> customers = GetCustomers().Where(c => c.CompanyName == companyname).ToList();
if (customers.Count > 0)
{
salesPersonToAssign = customers.First().SalesPerson;
}
 
return salesPersonToAssign;
}


添加命名的更新方法 named update method


 

  • 在Domain Services中,添加一个满足命名更新方法所需签名的方法。这个方法或者标记[Update]属性并设置UsingCustomMethod为true,或者接受一个实体作为第一个参数并没有返回值。下面的代码允许角色为CustomerRepresentative的用户重新设置客户的密码。
    ?
    1
    2
    3
    4
    5
    6
    7
    [RequiresRole("CustomerRepresentative")]
            public void ResetPassword(Customer customer)
            {
                // Implement logic to reset password
            }

     

当添加一个命名的更新named update方法,在客户端会生成两个方法。一个在Domain context上生成,另一个是由实体生成的,这个实体是这个named update方法的传递参数。从客户端可以使用这两种方式来调用named update方法。调用这个方法后,还需要掉调用SubmitChanges方法。
 

?
1
2
3
4
selectedCustomer.ResetPassword();
customerContext.SubmitChanges(OnSubmitCompleted, null);




 

 


添加一个可调用的操作
在Domain Services类中,添加一个标记[Invok]属性的方法。
下面的示例表示如何根据邮编来查询当地的气温。

 

?
1
2
3
4
5
6
7
[Invoke]
public int GetLocalTemperature(string postalcode)
{
    // Implement logic to look up temperature
}


然后可以通过使用InvokeOperation(TValue)对象来调用这个方法。如下所示:

 

?
1
2
3
InvokeOperation<INT> invokeOp = customerContext.GetLocalTemperature(selectedPostalCode);


如何使用HTTPS与Domain Services
当我们想改善建立在Domain Services上的通信安全时,可以配置Domain Services只接受https上的请求。此时Domain Services将拒绝所有http上的请求。当Domain Services配置为应用于https时,相应的DomainContext类也对所有的请求使用https。
想使用https,我们需要配置下Web服务器。可以通过How to Set Up an HTTPS Service in IIS和Configuring HTTP and HTTPS获得详细信息。配置完服务器后,还需要下面的步骤来指定Domain Services使用HTTPS。
当应用EnableClientAccessAttribute属性时,设置REquiresSecureEndpoint为true,代码如下
 

?
1
2
3
4
[EnableClientAccess(RequiresSecureEndpoint = true)]
public class AuthenticationDomainService
C++ accode 1045——虫子与苹果 hello,大家好,在下雨落,今天给大家带来代码—— 虫子与苹果 我们先来看看问题: 一个箱子里有n个苹果,混进了一条专注的虫子。虫子每x小时能吃掉一个苹果,这虫子十分专注,在吃完一个苹果之前不会吃另一个, 请问:经过y小时后,箱子里还剩下多少个完整的苹果? 输入: 一行,包括三个整数n,x和y。 输出: 一个整数,表示剩下的“完整的苹果”的数量。 #include<cstdio> i... 阅读详情

相关推荐

【OpenJudge】c语言_苹果和虫子

苹果和虫子 查看提交统计提问 总时间限制: 1000ms 内存限制: 65536kB 描述 你买了一箱n个苹果,很不幸的是买完时箱子里混进了一条虫子。虫子每x小时能吃掉一个苹果,假设虫子在吃完一个苹果之前不会吃另一个,那么经过y小时你还有多少个完整的苹果? 输入输入仅一行,包括n,x和y(均为整数)。输入数据保证y 输出输出也仅一行,剩下的

cldance的博客 1万+

Silverlight 4 + RIA Services之商业应用系列----2 Updating&Validation

在你开始学习这篇文章之前,需要去看part1部分。 part1: 如何使用RIA Servicespart2: RIA Services更新和验证part3:RIA Services数据新增part4:皮肤的更改part5:报表的展示part6:Endpoint的设置part7:如何使用RIA Service Class Library part8:url重写和

我的博客新地址: http://www.n-pei.com 7990

苹果和虫子

【题目描述】 你买了一箱n个苹果,很不幸的是买完时箱子里混进了一条虫子。虫子每x小时能吃掉一个苹果,假设虫子在吃完一个苹果之前不会吃另一个,那么经过y小时你还有多少个完整的苹果? 【输入】 输入仅一行,包括n,x和y(均为整数)。 【输出】 输出也仅一行,剩下的苹果个数。 【输入样例】 10 4 9 【输出样例】 7 【参考程序】 #include<iostream> #include...

fjkgh的博客 3069

Silverlight WCF RIA服务(二十四)Silverlight 客户端 5

在客户端处理错误 当我们在客户端检索或修改数据时,我们通常需要处理错误和对错误做出反应。通过WCF RIA Services,我们为数据操作提供一个回调方法来处理错误,并且在回调方法里检查错误。使用回调方法是必需的,因为调用数据操作都是异步的,比且异常也是异步抛出的    在客户端处理错误当我们在客户端检索或修改数据时,我们通常需要处理错误和对错误做出反应。通过WCF RIA Services...

weixin_34190136的博客 153

1038:苹果和虫子

1038:苹果和虫子 时间限制: 1000 ms 内存限制: 65536 KB 【题目描述】 你买了一箱n个苹果,很不幸的是买完时箱子里混进了一条虫子。虫子每x小时能吃掉一个苹果,假设虫子在吃完一个苹果之前不会吃另一个,那么经过y小时你还有多少个完整的苹果? 【输入】 输入仅一行,包括n,x和y(均为整数)。 【输出】 输出也仅一行,剩下的苹果个数。 【输入样例】 10 4 9 【输出样例】 7 说明: 主要考查用编程解决数学问题。 不过这题存在一个问题,不知官方会不会修正,后面会讲述此问题。

胖虎很忙 1万+

信息学奥赛一本通C++语言——1038:苹果和虫子

【题目描述】 你买了一箱n个苹果,很不幸的是买完时箱子里混进了一条虫子。虫子每x小时能吃掉一个苹果,假设虫子在吃完一个苹果之前不会吃另一个,那么经过y小时你还有多少个完整的苹果? 【输入】 输入仅一行,包括n,x和y(均为整数) 【输出】 输出也仅一行,剩下的苹果个数。 【输入样例】 10 4 9 【输出样例】 7 代码 #include<cstdio> #include<cma...

子航OIer 4227

Silverlight 4 + RIA Services之商业应用系列----3 DataForm使用

系列文章: part1: 如何使用RIA Servicespart2: RIA Services更新和验证part3:RIA Services数据新增part4:皮肤的更改part5:报表的展示part6:Endpoint的设置part7:如何使用RIA Service Class Library part8:url重写和界面友好1.使用DataForm

我的博客新地址: http://www.n-pei.com 9994

【信息奥赛一本通】1038:苹果和虫子

你买了一箱n个苹果,很不幸的是买完时箱子里混进了一条虫子。虫子每x小时能吃掉一个苹果,假设虫子在吃完一个苹果之前不会吃另一个,那么经过y小时你还有多少个完整的苹果?

sohf777的博客 5997

基于RIA的多层应用(一)--silverlight的集成

一、创建一个silverlight4应用,选择生成一个新的Ria 站点。这样同时生成了两个应用服务,一个是silverlight,一个是ria service。这个RIA service建议只作为中间层使用。可以往里边添加任何的edmx相关实体类。二、在silverlight中增加一个      然后code:     private DomainService1 _customerContext = new DomainService1();//注意,这个类就是Ria service生成的类。     

yangtang_newton的专栏 1016

【open Judge】21:苹果和虫子2

21:苹果和虫子2 查看提交统计提问 总时间限制:  1000ms  内存限制:  65536kB 描述 你买了一箱n个苹果,很不幸的是买完时箱子里混进了一条虫子。虫子每x小时能吃掉一个苹果,假设虫子在吃完一个苹果之前不会吃另一个,那么经过y小时你还有多少个完整的苹果? 输入输入仅一行,包括n,x和y(均为整数)。 输出输出也仅

cldance的博客 6474

Apples Prologue / 苹果和虫子

小 B 喜欢吃苹果。她现在有m1≤m≤100)个苹果,吃完一个苹果需要花费t0≤t≤100)分钟,吃完一个后立刻开始吃下一个。现在时间过去了s1≤s≤10000)分钟,请问她还有几个完整的苹果?

2301_81070275的博客 608

苹果和虫子2

题目:苹果和虫子2 蒜头君买了一箱 n个苹果,很不幸的是买完时箱子里混进了一条虫子。虫子每 x小时能吃掉一个苹果,假设虫子在吃完一个苹果之前不会吃另一个,那么经过 y小时你还有多少个完整的苹果? 输入格式 输入仅一行三个整数 n,x,y(1≤n,x,y≤1000)。 输出格式 输出也仅一行,剩下的苹果个数。 Sample Input 10 4 9 Sample Output 7 代码如下: #include<stdio.h> //t为剩下的苹果 //n为苹果的个数 int m

weixin_52346600的博客 529

【信息学奥赛】1038:苹果和虫子(C++)

今天来让我们来继续分析信息学奥赛一本通的第五十一题,也就是要按照题目的要求求出2的幂。(并且,看了我的文章的人只有少数人点了赞,如果你觉得我写的好,或对你有帮助的话,请点赞!!!并收藏。谢谢!) 【题目描述及其目的】 1037:计算2的幂 时间限制: 1000 ms 内存限制: 65536 KB 提交数: 68316 通过数: 39407 【题目描述】 给定非负整数n,求2n的值,即2的n次方。 【输入】 一个整数n。0≤n&...

weixin_62460981的博客 5399

POJ1.3 15 苹果和虫子

POJ1.3算术表达式与顺序执行 15

leizhehan的博客:(你可能会认得我的另一个名字:hsfzLZH1) 1487

java实现苹果和虫子2

题目:蒜头君买了一箱 n 个苹果,很不幸的是买完时箱子里混进了一条虫子。虫子每 x小时能吃掉一个苹果,假设虫子在吃完一个苹果之前不会吃另一个,那么经过 y 小时你还有多少个完整的苹果? 这个题目看起来很简单,一般人在看完题目之后就有了思路,直接输出答案,但是都会忽略一个条件,就是当一箱苹果的数量小于经历y小时能吃的苹果的数量时,结果会出现负数,结果是不对的。 如下代码:输入:2 1 3 输出:-1 import java.util.*; class Main{ public static v..

qq_44735504的博客 2092

信息学奥赛C++编程:苹果和虫子

信息学奥赛C++编程:(顺序结构)苹果和虫子

2075

信奥一本通1038(苹果与虫子)

你买了一箱n个苹果,很不幸的是买完时箱子里混进了一条虫子。虫子每x小时能吃掉一个苹果,假设虫子在吃完一个苹果之前不会吃另一个,那么经过y小时你还有多少个完整的苹果?输入仅一行,包括n,x和y(均为整数)。输出也仅一行,剩下的苹果个数。

m0_74196146的博客 574

基于STM32的半导体制冷片温度控制

制冷片温度控制,温控范围15℃~45℃,本人菜鸡一枚,大佬绕路。 #include "stm32f10x_gpio.h" #include "relay.h" void relay_Init(void){ GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);//Ê...

大白兔的博客 9016
上一篇: Silverlight WCF RIA服务(九)Domain Service 2
下一篇: Silverlight WCF RIA服务(十一)数据 1
sam1012
博客等级 码龄18年 17粉丝 31原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值