I am having problem and the time spend beeing stuck tells me, to ask stackOverflow community. So: I have basic versioning system for files represented as abstract class FileSystemEntry (FSE) which has 2 childs - File and Folder. There is also FileSystemEntryVersion (FSEV). FSE has many FSEV.
public abstract class FileSystemEntry
{
public FileSystemEntry(){}
public virtual long Id { get; protected set; }
public virtual IList<FileSystemEntryVersion> Versions { get; set; }
}
and here is the FSEV:
public class FileSystemEntryVersion {
public FileSystemEntryVersion(){}
public virtual long Id { get; protected set; }
public virtual String Name { get; set; }
//pointer to physical file/folder
public virtual FileSystemEntry FileSystemEntry { get; set; }
//pointer to parent file/folder
public virtual FileSystemEntry ParentFolder { get; set; }
}
Here is the hbm.xml file for FSE (the most important part)
<class name="FileSystemEntry" table="[FileSystemEntry]" abstract="true">
<id name="Id" type="Int64">
<generator class="identity" />
</id>
<discriminator column="Type"
not-null="true"
type="String"/>
<subclass name="File"
discriminator-value="File"/>
<subclass name="Folder"
discriminator-value="Folder"/>
</class>
Every FSEV (has parent folder). I want to make a query, which gets only folders contained in parent folder. My current query is:
IList<FileSystemEntryVersion> versions =
session.CreateCriteria<FileSystemEntryVersion>()
.Add(Restrictions.Eq("ParentFolder.Id", parentFolderId))
.Add(Restrictions.Eq("FileSystemEntry.class", typeof(Folder)))))
.List<FileSystemEntryVersion>();
return versions;
But the property "class" in FileSystemEntry.class is said it couldn't be resolved. Why?