我的ASP.NET应用程序不包含任何业务层,我们使用“ ActionProcessor.ProcessActionAndResponse”先调用Dao,然后在另一个文件中调用Action.cs(例如):
public class AdvertiserGroupLoadPartnerAction : BaseAction
{
private AdelContext _context = null;
private long _partnerId = ValueTypeUtils.Instance.LongNull;
#region CONSTRUCTORS
// ----------------------------------------------------------
// Members
// ----------------------------------------------------------
public AdvertiserGroupLoadPartnerAction(AdelContext context, long partnerId)
{
_context = context;
_partnerId = partnerId;
}
#endregion
#region METHODS
// ----------------------------------------------------------
// Methods
// ----------------------------------------------------------
/// <summary>
/// Creates a partner
/// </summary>
public override ActionResponse Execute()
{
ActionResponse response = new ActionResponse();
IPartnerDao dao = (IPartnerDao)GetDao(typeof(IPartnerDao));
PartnerDo partner = dao.FindByPrimaryKey(_partnerId);
response.Add("Partner", partner);
return response;
}
#endregion
}
在我后面的代码中:
ActionProcessor.ProcessActionAndResponse(new AdvertiserGroupLoadPartnerAction(AdelContext, partIdt));
要在视图中设置全局属性:
public PartnerDo Partner
{
get { return _partner; }
set { _partner = value; }
}
我的增强功能
我发现以前的方法不切实际。就我而言,我需要根据下拉列表(AdvertiserList)中的选定值更新checkobx。这是我没有使用ActionProcessor的情况,否则,我将不得不再次创建一个新文件:
private void AdvertiserList_SelectChanged(object sender, EventArgs e)
{
DropDownList advertiserList = (DropDownList)sender;
IPartnerDao partnerDao = (IPartnerDao)DaoFactory.Instance.GetDao(typeof(IPartnerDao));
PartnerDo partner = partnerDao.FindByPrimaryKey(ConvertToLong(advertiserList.SelectedValue))
if (partner != null)
{
switch (partner.ClientType)
{
case ClientType.NewClient:
NewClientRadio.Checked = true;
break;
case ClientType.LoyalClient:
LoyalClientRadio.Checked = true;
break;
case ClientType.Renewing:
RenewingRadio.Checked = true;
break;
}
}
}
我不喜欢从后面的代码中调用Dao,它可能会冻结应用程序,我还尝试放置Async任务。
我想创建一个服务:
PartnerDo partner = new PartnerDo();
using (ServiceChannel<IAdvertiserService> channel = new ServiceChannel<IAdvertiserService>())
{
partner = channel.Service.GetAdvertiserByPrimaryKey(ConvertToLong(advertiserList.SelectedValue));
}
由于我已经有一个Dao,所以我不知道从哪里开始创建这样的服务,我只需要封装查询即可。
我应该从哪里开始?我看过教程,但是它谈论从头开始创建Webservie。我想念什么?
注意:我不使用EntityFramework