如何将数据访问层包装成Webservice,可以支持直接访问数据库或调用Webservice远程访问
BLL层,供界面层访问:
using System;
using System.Collections.Generic;
using Dtsc.Common.Utility;
namespace MyFrame.DataAcess.Data
{
/// <summary>
/// Basdatacategory业务逻辑
/// </summary>
public class BllBasdatacategory
{
private static readonly IBaseOperate< Basdatacategory> baseOperate =(IBaseOperate< Basdatacategory>) DALFactory.CreateInstance("DalBasdatacategory");
private static readonly IBasdatacategory dal = (IBasdatacategory)DALFactory.CreateInstance("DalBasdatacategory");
#region BaseOperation
/// <summary>
/// 增加一条记录
/// </summary>
/// <param name="model"></param>
public static void Insert(Basdatacategory model)
{
if(model != null)
baseOperate.Insert(model);
}
/// <summary>
/// 删除一条记录
/// </summary>
/// <param name="id"></param>
public static void Delete(Basdatacategory model)
{
if(model != null)
baseOperate.Delete(model);
}
/// <summary>
/// 更新一条记录
/// </summary>
/// <param name="model"></param>
public static void Update(Basdatacategory model)
{
if(model != null)
baseOperate.Update(model);
}
/// <summary>
/// 获取一条记录
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public static Basdatacategory GetModel(string id)
{
if(string.IsNullOrEmpty(id))
{
return null;
}
return baseOperate.GetModel(id);
}
/// <summary>
/// 获取所有记录
/// </summary>
/// <returns></returns>
public static IList<Basdatacategory> GetList()
{
return baseOperate.GetList();
}
/// <summary>
/// 查询某条记录是否存在
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public static bool Exists(string id)
{
if(string.IsNullOrEmpty(id))
{
return true;
}
return baseOperate.Exists(id);
}
#endregion
#region UserOperation
/// <summary>
/// 判断分类编码和名称是否存在
/// </summary>
/// <param name="model"></param>
/// <param name="type"></param>
/// <returns></returns>
public static bool ExistsCategory(Basdatacategory model, MyFrame.Common.EnumLibrary.FormOp type)
{
return dal.ExistsCategory(model, type);
}
#endregion
}
}
接口:
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
namespace MyFrame.DataAcess.Data
{
public interface IBasdatacategory:IBase
{
bool ExistsCategory(Basdatacategory model, MyFrame.Common.EnumLibrary.FormOp type);
}
}
工厂:
using System;
using System.Collections.Generic;
using System.Text;
using System.Reflection;
using Dtsc.Common.Utility;
namespace MyFrame.DataAcess.Data
{
/// <summary>
/// 数据访问工厂
/// </summary>
public class DALFactory
{
private static readonly string path = "MyFrame.DataAcess";
private static readonly string dbType = WebConfigHelper.GetAppSetting("DataBaseType");
/// <summary>
/// 创建数据访问实体
/// </summary>
/// <param name="className">类名</param>
/// <returns></returns>
public static object CreateInstance(string className)
{
return Assembly.Load(path).CreateInstance(string.Format("{0}.Data.{1}.{2}", path, dbType, className));
}
}
}