I have a DTO object like this:
public class TreeViewDTO
{
public string Value { get; set; }
public string Text { get; set; }
public bool HasChildren { get; set; }
}
and my entity mapped with Nhibernate is:
public class Entity
{
public virtual int Id { get; set; }
public virtual string Name { get; set; }
public virtual Entity Parent { get; set; }
/* other properties */
}
I would like to know, how can I get a List of my DTOs and fill the HasChildren property using a count method or a subquery to know if there are childrens?
I have tried this, but does not work:
return Session.QueryOver<Entity>
.Select(entity => new TreeViewViewModel() {
Value = entity.Id.ToString(),
Text = entity.Name,
HasChildren = (Session.QueryOver<Entity>().Where(x => x.ParentId == entity.Id).RowCount() > 0)})
.ToList();
I got an exception with this: NotSupportedException
and the messages says: x => (x.Parent.Id == [100001].Id)
and it is not supported.
How could I create a query to fill this property?
PS: I would like to have a query to select only the Id, Name and Count... because my entity can have 30 fields or more...
Thank you.
Entity.Children
property? – NelidanelieEntity
class I have the Parent property that refereces another entity, (not necessary the same type). I just would like to know if there is Children that references the Entity in question. – HaemolysinSession.Query
with linq? – NelidanelieSession.Query<Entity>
but I'm not sure if it supported everything like EF. – HaemolysinHasChildren
property mapped usingFormula
with the SQL defined which checks if there exists a record withParentId
asId
? – Brownnose