데이터베이스의 각 테이블에 대한 액세스 방법을 포함하는 비즈니스 논리 계층 클래스가 있습니다. 꽤 많은 테이블이 있기 때문에 엔티티 (코딩 할 때 더 쉽게 액세스 할 수 있도록)별로 메소드를 그룹화하기 위해 구조를 재구성하려고합니다. 그래서에서이 : 이것에클래스를 하위 클래스로 분할
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