サードパーティのORMに依存せずに、VB.Net for MySQL接続で汎用CRUDリポジトリを作成することは可能ですか?
つまり、MySQL CRUDは、アクセスするテーブルとフィールドを識別するために文字列に依存しますが、私たちが持っているのは.Netオブジェクトです。
これを実現する唯一の方法は、ORMやReflectionクラスを使用することですか?オブジェクトや文字列を互いに一致させるために何かを行うことはできませんか?
私がこのリポジトリインターフェースを手に入れたとしましょう:
public interface IRepository<T> where T:class
{
void Insert(T entity);
void Delete(T entity);
IQueryable<T> GetAll();
T GetById(string id);
}
このインターフェイスを見て頭に浮かぶのは、CRUDメソッドは非常に似ていますが、オブジェクトごとに個人用リポジトリを作成することです。
たとえば、従業員CRUDのリポジトリを作成する必要があります。
class EmployeeRepository : IRepository<Employee>
{
private string _query;
public IQueryable<Employee> GetAll(Employee entity)
{
_query = "SELECT * FROM tbl_msemployee";
//Do query here, which will eventually return a list of Employee object
}
}