/// <summary>
/// 業務層抽象基類
/// </summary>
public abstract class ServiceBase
{
/// <summary>
/// 通用消息
/// </summary>
protected VMessage VMessage { get; set; }
/// 資料層統一操作對象執行個體
/// 避免派生類直接new對象
/// <typeparam name="TEntity"></typeparam>
/// <returns></returns>
protected IRepository<TEntity> LoadRepository<TEntity>() where TEntity : class,Entity.IEntity
{
return new Repository<TEntity>();
}
}
子類在完成一個業務功能時,就變成了這樣:
public Entity.VMessage AddCommon_BasePropValue(Common_BasePropValue entity)
VMessage = new Entity.VMessage();
try
{
if (Base.LoadRepository<Common_BasePropValue>().GetModel().Where(i => i.Name == entity.Name).Count() > 0)
{
VMessage.IsComplete = false;
VMessage.AddItem("名稱重複");
}
else
base.LoadRepository<Common_BasePropValue>().Insert(entity);
VMessage.IsComplete = true;
}
catch (Exception ex)
VMessage.AddItem(ex.Message);
}
return VMessage;
這樣不需要在具體業務類中生成新對象,直接使用基類的方法就可以了,結構清晰,操作統一性好。