Friday, 29 September 2017

nhibernate class mappings

public class FSFileInfo
    {
        public virtual int Id { get; set; }
        public virtual int DirectoryId { get; set; }
        public virtual string DirectoryName { get; set; }
        public virtual string FileName { get; set; }
        public virtual DateTime CreationTime { get; set; }
        public virtual string Extension { get; set; }
        public virtual string FullName { get; set; }
        public virtual DateTime LastAccessTime { get; set; }
        public virtual DateTime LastWriteTime { get; set; }
        public virtual long Size { get; set; }
        public virtual DateTime InsertionTime { get; set; }
        public virtual string Content { get; set; }
        public virtual DateTime ContentUpdateDate { get; set; }
        public virtual bool HasPID { get; set; }
        public virtual string GDPRWords { get; set; }
        public virtual string CachePath { get; set; }
        public virtual IList<FSFileInfoDictionary> FSFileInfoDictionary { get; set; }

        public virtual int UniquePids
        {
            get { return FSFileInfoDictionary.DistinctBy(x => x.Dictionary.PIDId).Count(); }
        }
       
        public FSFileInfo()
        {
            FSFileInfoDictionary = new List<FSFileInfoDictionary>();
        }
    }

class FilesMap : ClassMap<FSFileInfo>
    {
        public FilesMap()
        {
            Id(x => x.Id).Column("ID");
            Map(x => x.DirectoryId);
            Map(x => x.Size);
            Map(x => x.CreationTime);
            Map(x => x.InsertionTime);
            Map(x => x.LastAccessTime);
            Map(x => x.LastWriteTime);
            Map(x => x.DirectoryName);
            Map(x => x.Extension);
            Map(x => x.FullName);
            Map(x => x.FileName);
            Map(x => x.Content);
            Map(x => x.ContentUpdateDate);
            Map(x => x.HasPID);
            Map(x => x.GDPRWords);
            Map(x => x.CachePath);

            HasMany(x => x.FSFileInfoDictionary)
                .KeyColumn("FileID")
                .Inverse()
                .Cascade.All()
                .Not.LazyLoad()
                .Fetch.Select();

            Table("FSFileInfo");
        }
    }



class FSFileInfoDictionaryInfoMap : ClassMap<FSFileInfoDictionary>
    {
        public FSFileInfoDictionaryInfoMap()
        {
            //LazyLoad();
            Id(x => x.Id);
            Map(x => x.FileId);
            Map(x => x.DictionaryId);
            References(x => x.Dictionary).Column("DictionaryId").Not.LazyLoad();
            Table("FSFileInfoDictionary");
        }
    }

class FSDictionaryInfoMap : ClassMap<FSDictionary>
    {
        public FSDictionaryInfoMap()
        {
            Id(x => x.Id);
            Map(x => x.Word);
            Map(x => x.PIDId);
            Map(x => x.DateAdded);
            Map(x => x.AddedBy);
            References(x => x.PID).Column("PIDId").Not.LazyLoad();
            Table("FSDictionary");
        }
    }

No comments:

Post a Comment

Note: only a member of this blog may post a comment.

Blog Archive