zoukankan      html  css  js  c++  java
  • NhibernateReview

    1.KeyColumn

    image

    public class ProductMap : ClassMap<Product>
    {
        public ProductMap()
        {
            Id(p => p.ProductID);
            Map(p => p.CreateTime);
            Map(p => p.Name);
            Map(p => p.Price);
        }
    }
    
    public class BookMap : SubclassMap<BookProduct>
    {
        public BookMap()
        {
            Table("Book");
            KeyColumn("ProductID");
            Map(p => p.Author);
        }
    }
    
    public class MobileMap : SubclassMap<MobileProduct>
    {
        public MobileMap()
        {
            Table("Mobile");
            KeyColumn("ProductID");
            Map(p => p.Brand);
            Map(p => p.Number);
        }
    }

    2.Component

    image

    public class User
    {
        public virtual int UserID { get; set; }
    
        public virtual string UserName { get; set; }
    
        public virtual string Password { get; set; }
    
        public virtual DateTime CreateTime { get; set; }
    
        public virtual UserDetail Detail { get; set; }
    }
    
    public class UserDetail
    {
        public virtual User User { get; set; }
    
        public virtual int UserID { get; set; }
    
        public virtual DateTime LastUpdated { get; set; }
    
        public virtual PersonName Name { get; set; }
    }
    
    public class PersonName
    {
        public virtual string FirstName { get; set; }
    
        public virtual string LastName { get; set; }
    }
    

    Mapping

    public class UserMap : ClassMap<User>
    {
        public UserMap()
        {
            Id(u => u.UserID).GeneratedBy.Identity() ;
            Map(u => u.UserName);
            Map(u => u.Password);
            Map(u => u.CreateTime);
            HasOne<UserDetail>(u => u.Detail).Cascade.All().PropertyRef("User");
        }
    }
    
    public class UserDetailMap : ClassMap<UserDetail>
    {
        public UserDetailMap()
        {
            Id(u => u.UserID).Column("UserID").GeneratedBy.Foreign("User");
            HasOne<User>(d => d.User).Cascade.All().Constrained();
            Map(u => u.LastUpdated).Nullable();
            Component<PersonName>(u => u.Name, p =>
            {
                p.Map(o => o.FirstName).Column("[First Name]");
                p.Map(o => o.LastName).Column("[Last Name]");
            });
        }
    }

    3.

    image

    public class User
    {
        public virtual int UserID { get; set; }
    
        public virtual string UserName { get; set; }
    
        public virtual string Password { get; set; }
    
        public virtual DateTime CreateTime { get; set; }
    
        public virtual UserDetail Detail { get; set; }
    
        public ISet<Order> Orders { get; set; }
    }
    
    public class Order
    {
        public virtual int OrderID { get; set; }
    
        public virtual float Price { get; set; }
    
        public virtual OrderState State { get; set; }
    
        public virtual DateTime CreateTime { get; set; }
    
        public virtual User User { get; set; }
    
        public virtual string Address { get; set; }
    
        public virtual string Zip { get; set; }
    
        public virtual string Coignee { get; set; }
    }
    

    Mapping

    public class UserMap : ClassMap<User>
    {
        public UserMap()
        {
            Id(u => u.UserID).GeneratedBy.Identity() ;
            Map(u => u.UserName);
            Map(u => u.Password);
            Map(u => u.CreateTime);
            HasOne<UserDetail>(u => u.Detail).Cascade.All().Fetch.Select();
            HasMany<Order>(u => u.Orders).AsSet().KeyColumn("UserID").Cascade.All();
        }
    }
    
    public class OrderMap : ClassMap<Order>
    {
        public OrderMap()
        {
            Id(o => o.OrderID).GeneratedBy.Identity();
            Map(o => o.Price);
            Map(o => o.State).CustomType<OrderState>();
            Map(o => o.Address);
            Map(o => o.Coignee);
            Map(o => o.CreateTime);
            Map(o => o.Zip);
            References<User>(o => o.User).Not.LazyLoad().Column("UserID");
        }
    }
  • 相关阅读:
    C++探究transform算法
    C++探究foreach算法
    C++ MFC棋牌类小游戏day6
    C++ MFC棋牌类小游戏day5
    C++ MFC棋牌类小游戏day4
    C++ MFC棋牌类小游戏day3
    MFC 字体
    C++ MFC棋牌类小游戏day2
    第三章 使用属性升级MyBank
    第二章 C#语法快速热身
  • 原文地址:https://www.cnblogs.com/TivonStone/p/2762512.html
Copyright © 2011-2022 走看看