order.cs

来自「NHibernate简单DEMO」· CS 代码 · 共 52 行

CS
52
字号
using System;
using BasicSample.Core.Utils;

namespace BasicSample.Core.Domain
{
    public class Order : DomainObject<long>
    {
        /// <summary>
        /// This is a placeholder constructor for NHibernate.
        /// A no-argument constructor must be avilable for NHibernate to create the object.
        /// Be sure to call the "primary" constructor so the collections get wired up correctly.
        /// Instead of passing null to the primary constructor, I'd recommend passing a 
        /// "null object": http://www.cs.oberlin.edu/~jwalker/nullObjPattern/.
        /// (But passing null keeps things very simple for the example.)
        /// </summary>
        private Order() {}

        public Order(Customer orderedBy) {
            Check.Require(orderedBy != null, "orderedBy may not be null");

            OrderedBy = orderedBy;
            OrderedBy.AddOrder(this);
        }

        public DateTime? OrderDate {
            get { return orderDate; }
            set { orderDate = value; }
        }

        public string ShipToName {
            get { return shipToName; }
            set { shipToName = value; }
        }

        public Customer OrderedBy {
            get { return orderedBy; }
            protected set { orderedBy = value; }
        }

        public override int GetHashCode() {
            return (GetType().FullName + "|" +
                    ShipToName + "|" +
                    (OrderDate ?? DateTime.MinValue).GetHashCode() + "|" +
                    OrderedBy.GetHashCode()).GetHashCode();
        }

        private Customer orderedBy;
        private DateTime? orderDate;
        private string shipToName = "";
    }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?