ActiveRecordは、一部のフィールドのクエリーを返します.
2809 ワード
1.管理対象外のエンティティークラスのカスタマイズ
2.カスタム管理対象外のエンティティークラスへのエンティティークラス属性の追加
3.コード内で検索フィールドを使用してカスタム非管理エンティティクラスを生成する
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();
}