Ich muss alle Benutzer mit einer gültigen Wish
-Eigenschaft (also nicht null) abrufen. Dies ist die xml meiner Klasse:Nhibernate Abfrage mit Null Kind
<class name="Project.Engine.Domain.User,Project.Engine" table="Users" lazy="true">
<id name="UserID" column="UserID">
<generator class="native" />
</id>
<property name="Firstname" column="Firstname" type="string" not-null="true"
length="255" />
<property name="Lastname" column="Lastname" type="string" not-null="true"
length="255" />
<property name="Email" column="Email" type="string" not-null="true"
length="255" />
<one-to-one name="Wish" cascade="all" property-ref="UserID"
class="Project.Engine.Domain.Wish, Project.Engine" />
</class>
Verfahren alle meine Benutzer zu erhalten, ist die folgende:
public PagedList<User> GetAll(int pageIndex, int pageSize,
string orderBy, string orderByAscOrDesc)
{
using (ISession session = NHibernateHelper.OpenSession())
{
var users = session.CreateCriteria(typeof(User));
users.Add(Restrictions.IsNotNull("Wish"));
return users.PagedList<User>(session, pageIndex, pageSize);
}
}
Wie Sie sehen können, habe ich die Beschränkung auf das Kind-Objekt hinzugefügt. Dies funktioniert nicht ordnungsgemäß, da die Methode alle Benutzer einschließlich der mit der Eigenschaft Wish
als null zurückgibt. Irgendeine Hilfe?
dies ist die xml für Kind:
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
<class name="Project.Engine.Domain.Wish,Project.Engine" table="Wish" lazy="false">
<id name="WishID" column="WishID">
<generator class="native" />
</id>
<property name="UserID" column="UserID" type="int" not-null="true" length="32" />
<property name="ContentText" column="ContentText" type="string" not-null="false" length="500" />
<property name="Views" column="Views" type="int" not-null="true" length="32" />
<property name="DateEntry" column="DateEntry" type="datetime" not-null="true" />
</class>
</hibernate-mapping>
Sie sollten 'Wish' Mapping auch einschließen. –
Ich habe den Beitrag aktualisiert – Ras