0
我使用城堡的ActiveRecord和子句創建兩個實體如下:如何添加,其中在城堡的ActiveRecord子項
[ActiveRecord("Teams")]
public class Team : ActiveRecordLinqBase<Team>
{
public Team()
{
Members = new List<Member>();
}
[PrimaryKey]
public int Id { get; set; }
[Property("TeamName")]
public string Name { get; set; }
[Property]
public string Description { get; set; }
[HasMany(Inverse = true,
Lazy = true,
Cascade = ManyRelationCascadeEnum.AllDeleteOrphan)]
public virtual IList<Member> Members { get; set; }
}
[ActiveRecord("Members")]
public class Member : ActiveRecordLinqBase<Member>
{
[PrimaryKey]
public int Id { get; set; }
[Property]
public string FirstName { get; set; }
[Property]
public string Lastname { get; set; }
[Property]
public string Address { get; set; }
[BelongsTo("TeamId")]
public Team Team { get; set; }
}
我用ICriterion有過濾球隊數據
IList<ICriterion> where = new List<ICriterion>();
where.Add(Expression.Eq("Name", "name1"));
ICriterion[] criteria = where.ToArray();
var teams = Team.FindAll(criteria);
所以遠遠好用,但我想在Members表上添加另一個過濾器。結果查詢會是這樣的
select *
from Teams t join Member m on t.Id = m.TeamId
where t.Name = 'name1'
and m.Address = 'address'
如何使用ICriterion完成此操作? 我的意思是如何爲Team.Members屬性添加標準。 不使用LINQ。 (我知道這很容易使用LINQ來完成)
感謝an2,你的代碼似乎使用NHibernate因爲會話,我的情況是Castle ActiveRecord,無論如何,我從你的代碼中得到了這個想法。 – Ray 2012-02-01 00:53:45