これにより2つの別個のクラスが作成されることは、他の誰もが正しいです。2 つの別個のクラスを作成せず、部分クラスを介してロジックからデータを分離するには、プロジェクトに次の 2 つのファイルを含めることができます。
- Employee.cs
- Employee.bl.cs
次に、Employee.cs コードは次のようになります。
namespace YourNamespace
{
partial class Employee
{
public string EmpID { get; set; }
public string EmpName { get; set; }
}
}
Employee.bl.cs は次のようになります。
namespace YourNamespace
{
partial class Employee
{
public static List<Employee> GetListOfEmployees()
{
//DATA ACCESS
var emps = GetEmployeesFromDb(); // fetch from db
return emps;
}
}
}
データを取得するためのクラスを持つことは、内部をRepository
持つよりも適切だと思いますが。GetListOfEmployees
Employee
アップデート:
リポジトリと言うときは、リポジトリ デザイン パターンを指しています。リポジトリは、(リレーショナル データベースなどから) オブジェクトを取得および格納するためのインターフェイスです。LINQ to SQL や ADO.NET Entity Framework などの ORM を使用している場合、通常、この役割を満たすクラスが自動生成されます。ただし、独自のデータベース アクセス コードを記述する場合は、次のように独自のリポジトリ クラスを作成できます。
public class Repository
{
public Repository(string connectionString)
{
// ...
}
public IEnumerable<Employee> GetEmployees()
{
return GetEmployeesFromDb();
}
public Employee GetEmployeeById(Guid id)
{
// ...
}
public void StoreEmployee(Employee employee)
{
// ...
}
// etc.
}
Employee
これの利点は、クラスまたは他の永続クラス全体にデータベース コードを配置する必要がないことです。データベースへのアクセスはすべて、1 つのインターフェイスを介して行われます。interface
また、リポジトリの複数の実装を作成して持つこともできます。Employee
そうすれば、たとえば、Employee
クラスを変更することなく、インスタンスをファイルに格納する方法が得られます。