0
성 액티브의 하위 항목에 대한 절은 다음과 같은 두 개의 엔티티 생성 위치를 추가하는 방법 :내가 성 액티브를 사용하고
[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; }
}
를 내가 필터링 팀 데이터 그래서
IList<ICriterion> where = new List<ICriterion>();
where.Add(Expression.Eq("Name", "name1"));
ICriterion[] criteria = where.ToArray();
var teams = Team.FindAll(criteria);
을 가지고 ICriterion을 사용 그것은 잘 작동하지만 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를 사용하지 않습니다. 이것은 당신이 NHibernate에 결과를 사용할 수있는 패치 하나에 모두 팀 및 구성원을 반환 Team.To에만 돌아갑니다
감사합니다 an2, 귀하의 코드는 세션 때문에 NHibernate를 사용하는 것 같다, 내 사건은 성 ActiveRecord, 어쨌든 나는 당신의 코드에서 아이디어를 얻었다. – Ray