我有一個業務邏輯層類,它包含數據庫中每個表的訪問方法。由於現在有相當多的表格,我想重新構造它以按實體對方法進行分組(以便在編碼時更容易訪問)。所以,從這個:將一個類拆分成子類
BLL.Database MyDB = new BLL.Database();
BLL.Entity.User MyUser = Database.UserGetById(42);
這樣:
BLL.Database MyDB = new BLL.Database();
BLL.Entity.User MyUser = Database.User.GetById(42);
我想這個類保持非靜態如果可能的話,所有的類「部分」太(允許我補充主要生成的類的其他方法)。我有什麼選擇來實現這一目標?以下是目前的佈局:
namespace BLL
{
public partial class Database
{
// private members..
// constructor
#region User
public IQueryable<BLL.Entity.User> UserGetAll()
{
// ...
}
public BLL.Entity.User UserGetById(int UserId)
{
// ...
}
public void UserSave(ref BLL.Entity.User user)
{
// ...
}
public void UserDelete(int userId)
{
// ...
}
#endregion
// More sets of methods for other entities in database here..
}
}
這是否可行?
namespace BLL
{
public partial class Database
{
private _User;
public User
{
if (_User == null)
{
_User = new User();
}
return _User;
}
// Other data access classes here..
}
public partial class User
{
public IQueryable<BLL.Entity.User> GetAll()
{
// ...
}
// GetById, Save & Delete methods here..
}
}
謝謝。
此BLL是Linq-to-SQL的包裝器:)它將所有Linq數據上下文實體分離爲無狀態的poco類。 – Nick 2009-06-11 14:17:35