ActiveRecordは、一部のフィールドのクエリーを返します.

2809 ワード

1.管理対象外のエンティティークラスのカスタマイズ
namespace IOT{

  public class CustomerProjection{

    public int ID = 0;

    public string Name = "";
    public CustomerProjection(int id, string name){

      ID = id;

      Name = name;
    }

  }

}

 
2.カスタム管理対象外のエンティティークラスへのエンティティークラス属性の追加
[Imprt(typeof(IOT.CustomerProjection), "CustomerProjection")]

[ActiveRecord("Customers")]

public class Customer : ActiveRecordBase<Customer>

{



[PrimaryKey(PrimaryKeyType.Assigned)]

public string CustomerID

{

get { return customerID; }

set { customerID = value; }

}

.....

}

 
3.コード内で検索フィールドを使用してカスタム非管理エンティティクラスを生成する
protected void Page Load(object sender, EventArgs e)

{

IActiveRecordQuery query = new HqlBasedQuery(typeof (Customer),

@"select new CustomerProjection(c.CustomerID, c.CompanyName)

from Customer c join c.Orders o where c.Country = 'USA'

group by c.CustomerID, c.CompanyName, c.City, c.Region

");

GridView1.DataSource = ActiveRecordMediator.ExecuteQuery(query);

GridView1.DataBind();

}