0
Using Maxtoroq's DBExtensions how can we map an object having list of elements as child property 
using just one sql builder?

My sample DB structure 

Employee
   EmployeeId
   FirstName
   LastName

Department
 DeptId
 DeptName

EmployeeDepartment
  EmployeeId
  DeptId


My POCO 

class Department{

 public int DeptId {get;set;}

 public string DeptName {get;set;}
}

class Employee {

public void Employee(){
  Depts = new List<Department>();
}

  public int EmployeeId {get;set;}

  public string FirstName {get;set;}

  public string LastName {get;set;}

  public List<Department> Depts {get;set;}
}

ここで、SqlBuilder を使用して db に対してクエリを一度に実行することにより (db への複数の呼び出しではなく)、関連付けられているすべての部門を含む User のインスタンスを作成したいと考えています。

どうやってやるの?

4

1 に答える 1

1

私の知る限り、1回のデータベース呼び出しで1対多の関連付けを含むエンティティをロードできるORMはありません。

これは DbExtensions で行うことができますが、SqlBuilder の代わりに Database/SqlTable を使用します。

class MyDatabase : Database {

   public SqlTable<Employee> Employees {
      get { return Table<Employee>(); }
   }

   public MyDatabase()
      : base("name=MyDatabase") { }
}

var db = new MyDatabase();

Employee emp = db.Employees
   .Include("Depts")
   .Find(1);
于 2014-09-08T14:52:06.827 に答える