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");
        }
    }
  • 相关阅读:
    IBM 2013策略发布:大数据和分析、云计算、企业移动、社交商务、智慧商务、智慧城市
    BakAndImgCD 6.0 发布,数据备份和映像
    YaCy 1.4 发布,分布式Web搜索引擎
    Pig安装及本地模式测试,体验
    GCC 4.7.3 发布
    UPUPW Nginx版PHP高配引擎发布
    如何选择基于云的大数据方案
    PortalBasic v3.1.1 beta1 示例工程发布
    LLVM 编译器架构获得 ACM 软件系统奖
    123 Flash Chat Server 9.9 发布
  • 原文地址:https://www.cnblogs.com/TivonStone/p/2762512.html
Copyright © 2011-2022 走看看