Вы можете попробовать:
убедитесь, что в вашей организации-адресате есть компания, и она ссылается на нее в своем сопоставлении, а затем измените адрес вашей компании на адреса:
private IList<Address> _addresses = new List<Address>();
public virtual IList<Address> Addresses
{
get { return _addresses; }
set { _addresses = value; }
}
, а затем попробуйте этот критерий:
var criteria = DetachedCriteria.For<Company>()
.CreateCriteria("this.Addresses", "a")
.SetFetchMode("a", FetchMode.Join)
.Add(Restrictions.InsensitiveLike("a.Address", <string variable>, MatchMode.Anywhere))
.SetResultTransformer(new DistinctRootEntityTransformer());
А затем просто выполняйте этот критерий на любом сеансе, который у вас есть. Мой вопрос: почему адреса отображаются в Company, а представляют собой просто список строк? Было бы проще для вас, если бы Адреса были сущностью, сопоставленной с компанией.