nHibernate方法,使用条件来选择其子级集合中的字符串包含某个搜索词的父母
|
我需要在公司地址上进行搜索-如果公司的地址中有一个特定的字符串,则它必须出现在搜索结果中(例如regex \'%string%\'之类的东西)。
公司的nHibernate映射文件如下所示:
<?xml version=\"1.0\" encoding=\"utf-8\" ?>
<hibernate-mapping xmlns=\"urn:nhibernate-mapping-2.2\"
assembly=\"TaskMappings\"
namespace=\"TaskMappings\">
<class name=\"Company\">
<id name=\"Id\">
<generator class=\"sequence\">
<param name=\"sequence\">company_id_seq</param>
</generator>
</id>
<property name=\"Name\" />
<property name=\"Fax\" />
<property name=\"PostalCode\" />
<bag name=\"Users\" cascade=\"all-delete-orphan\" inverse=\"true\">
<key column=\"UserCompany\" />
<one-to-many class=\"User\" />
</bag>
<bag name=\"Phone\" cascade=\"all-delete-orphan\" lazy=\"false\">
<key column=\"PhoneCompany\" />
<element column=\"Phone\" />
</bag>
<bag name=\"Email\" cascade=\"all-delete-orphan\" lazy=\"false\">
<key column=\"EmailCompany\" />
<element column=\"Email\" />
</bag>
<bag name=\"Addresses\" table=\"address\" cascade=\"all-delete-orphan\" lazy=\"false\">
<key column=\"AddressCompany\" />
<element column=\"Address\" type=\"String\"/>
</bag>
</class>
</hibernate-mapping>
和Company实体类如下:
public class Company : Entity<int>
{
public virtual string Name { get; set; }
public virtual string Fax { get; set; }
public virtual string PostalCode { get; set; }
private IList<string> _phone = new List<string>();
public virtual IList<string> Phone
{
get { return _phone; }
set { _phone = value; }
}
private IList<string> _email = new List<string>();
public virtual IList<string> Email
{
get { return _email; }
set { _email = value; }
}
private IList<string> _addresses = new List<string>();
public virtual IList<string> Addresses
{
get { return _addresses; }
set { _addresses = value; }
}
private IList<User> users = new List<User>();
public virtual IList<User> Users
{
get { return users; }
set { users = value; }
}
}
我的问题是:如何最好使用条件进行搜索?我需要结果作为IList。
感谢您的回答! :)
没有找到相关结果
已邀请:
3 个回复
荒劫娇噬
然后尝试以下条件:
然后只要在任何会话中执行该条件即可。我的问题是,为什么地址映射到Company,而只是一个字符串列表?如果地址是映射到公司的实体,则将为您简化事情。
课刊灭似
孝箱捆讨