[ActiveRecord("SaleProperties")]
    public class SaleProperty :
ActiveRecordValidationBase<SaleProperty>, IAddressable,
ISalePropertyBindable, IVisible, IPictures, IRooms, IBuildingStyles,
ITaggable, IMLSProperty
    {

        #region Private Relation Variables
        private Address _address = new Address();
        private IList<BuildingStyle> _styles = new List<BuildingStyle>
();
        private Employee _agent;
        private IList<Picture> _pictures = new List<Picture>();
        private IList<Room> _rooms = new List<Room>();
        private IList<CategoryTag> _tags = new List<CategoryTag>();
        #endregion

        #region Constructors
        public SaleProperty()
        {
            Address.State = "CT";
        }
        #endregion

        #region ID
        [PrimaryKey(PrimaryKeyType.Native, "sale_property_id")]
        public virtual int ID { get; set; }
        #endregion

        #region Properties
        [Property("visible", NotNull = true)]
        public virtual bool Visible { get; set; }

        [Property("property_type", Length = 25, NotNull = false)]
        public virtual string PropertyType { get; set; }

        //[ValidateDate("Must be a valid date.")]
        [Property("date_added", NotNull = true)]
        public virtual DateTime DateAdded { get; set; }

        [Property("mls_number", NotNull = false)]
        public virtual string MLSNumber { get; set; }

        [ValidateDecimal("List Price must be a decimal in the format
XXXX.XX")]
        [Property("list_price", NotNull = false)]
        public virtual decimal ListPrice { get; set; }

        [Nested]
        public virtual Address Address
        {
            get { return _address; }
            set { _address = value; }
        }

        [ValidateInteger("Year built must be an integer value.")]
        [Property("year_built", NotNull = false)]
        public virtual int YearBuilt { get; set; }

        [ValidateDecimal("Beds must be a decimal in the format XX.X")]
        [Property("beds", NotNull = false)]
        public virtual decimal Beds { get; set; }

        [ValidateDecimal("Baths must be a decimal in the format
XX.X")]
        [Property("baths", NotNull = false)]
        public virtual decimal Baths { get; set; }

        [ValidateDecimal("Rooms must be a decimal in the format
XX.X")]
        [Property("rooms", NotNull = false)]
        public virtual decimal Rooms { get; set; }

        [ValidateDecimal("Taxes must be a decimal in the format
XXXX.X")]
        [Property("taxes", NotNull = false)]
        public virtual decimal Taxes { get; set; }

        [ValidateDecimal("Acreage must be a decimal in the format
XX.X")]
        [Property("estimated_acreage", NotNull = false)]
        public virtual decimal EstimatedAcreage { get; set; }

        [Property("owner", NotNull = false, Length=100)]
        public virtual string Owner { get; set; }

        [ValidateDecimal("Assessment must be a decimal in the format
XX.X")]
        [Property("assessment", NotNull = false)]
        public virtual decimal Assessment { get; set; }

        [Property("details", NotNull = false, ColumnType="StringClob",
SqlType = "ntext")]
        public virtual string Details { get; set; }

        [ValidateInteger("Square footage must be an integer value.")]
        [Property("squarefeet", NotNull = false)]
        public virtual int SquareFeet { get; set; }

        [Property("zoning", NotNull = false, Length=255)]
        public virtual string Zoning { get; set; }

        [Property("appliances", NotNull = false, Length=255)]
        public virtual string Appliances { get; set; }

        [Property("floors", NotNull = false, Length=255)]
        public virtual string Floors { get; set; }

        [Property("cooling", NotNull = false, Length=255)]
        public virtual string Cooling { get; set; }

        [Property("heating", NotNull = false, Length=255)]
        public virtual string Heating { get; set; }

        [Property("fuel", NotNull = false, Length=255)]
        public virtual string Fuel { get; set; }

        [Property("water_supply", NotNull = false, Length=255)]
        public virtual string WaterSupply { get; set; }

        [Property("basement", NotNull = false, Length=255)]
        public virtual string Basement { get; set; }

        [Property("garage", NotNull = false, Length=255)]
        public virtual string Garage { get; set; }

        [Property("waste", NotNull= false, Length=255)]
        public virtual string Waste { get; set; }

        [Property("interior_features", NotNull = false, Length=500)]
        public virtual string InteriorFeatures { get; set; }

        [Property("exteriror_features", NotNull = false, Length=500)]
        public virtual string ExteriorFeatures { get; set; }

        [Property("status", NotNull = false, Length = 50)]
        public virtual string Status { get; set; }

        [Property("lot_size", NotNull = false)]
        public virtual string LotSize { get; set; }

        [Property("num_levels", NotNull = false)]
        public virtual int NumberOfLevels { get; set; }

        [Property("listing_date", NotNull=false)]
        public virtual DateTime? ListingDate { get; set; }

        [Property("expiration_date", NotNull = false)]
        public virtual DateTime? ExpirationDate { get; set; }

        [Property("administrative_comments", NotNull = false,
ColumnType = "StringClob", SqlType = "ntext")]
        public virtual string AdministrativeComments { get; set; }
        #endregion

        #region Relations
        [ValidateNonEmpty("Agent Must Be Set!")]
        [BelongsTo("listing_agent", NotNull = false, NotFoundBehaviour
= NotFoundBehaviour.Ignore, Cascade = CascadeEnum.None,
Lazy=FetchWhen.OnInvoke)]
        public virtual Employee Agent
        {
            get { return _agent; }
            set { _agent = value; }
        }

        [HasAndBelongsToMany(typeof(Picture), Cascade =
ManyRelationCascadeEnum.AllDeleteOrphan,
            Inverse=false, Fetch=FetchEnum.Select,
Table="SalePictures", ColumnKey="property_id",
            ColumnRef = "picture_id", Lazy=true)]
        public virtual IList<Picture> Pictures
        {
            get { return _pictures; }
            set { _pictures = value; }
        }

        [HasAndBelongsToMany(typeof(Room), Cascade =
ManyRelationCascadeEnum.AllDeleteOrphan, Table="SaleRooms",
            ColumnKey="property_id", ColumnRef="room_id",
RelationType=RelationType.Bag, Lazy=true)]
        public virtual IList<Room> RoomDescriptions
        {
            get { return _rooms; }
            set { _rooms = value; }
        }

        [HasAndBelongsToMany(typeof(BuildingStyle),
Table="SalePropertyStyles", ColumnKey="property_id",
ColumnRef="style_id",
            RelationType=RelationType.Bag, Lazy=true)]
        public virtual IList<BuildingStyle> Styles
        {
            get { return _styles; }
            set { _styles = value; }
        }

        [BelongsTo("housing_category_id", NotNull=false,
Lazy=FetchWhen.OnInvoke)]
        public virtual HousingCategory Category { get; set; }

        [HasAndBelongsToMany(typeof(CategoryTag), Table = "SaleTags",
ColumnKey = "property_id", ColumnRef = "tag_id",
            RelationType = RelationType.Bag, Lazy=true)]
        public virtual IList<CategoryTag> Tags
        {
            get { return _tags; }
            set { _tags = value; }
        }
        #endregion

        #region Methods
        public new static int Count()
        {
            CountQuery cq = new CountQuery(typeof(SaleProperty));
            return (int)ActiveRecordMediator.ExecuteQuery(cq);
        }
        public new static int Count(DetachedCriteria dc)
        {
            CountQuery cq = new CountQuery(typeof(SaleProperty), dc);
            return (int)ActiveRecordMediator.ExecuteQuery(cq);
        }
        #endregion

        #region Validate Address Unique
        [ValidateSelf(RunWhen=RunWhen.Insert)]
        public virtual void Validate(ErrorSummary errorSummary)
        {
            if (Exists(Restrictions.Conjunction().Add(Restrictions.Eq
("Address.Street", Address.Street))
                                                .Add(Restrictions.Or
(Restrictions.Eq("Address.Street2", Address.Street2),
Restrictions.IsNull("Address.Street2")))
                                                .Add(Restrictions.Or
(Restrictions.Eq("Address.ApartmentNumber", Address.ApartmentNumber),
Restrictions.IsNull("Address.ApartmentNumber")))
                                                .Add(Restrictions.Eq
("Address.Town", Address.Town))))
                errorSummary.RegisterErrorMessage("Address", "Address
already exists in database!");
        }
        #endregion
    }


On Jul 31, 2:37 pm, Markus Zywitza <[email protected]> wrote:
> Can you post details on the type?
>
> -Markus
>
> 2009/7/31 Jason Sznol <[email protected]>
>
>
>
> > Hello all, I've been racking my brain on this problem for a few days.
> > I have the following error messages in my logs and I'm completely
> > baffled as to why they are occurring:
>
> > 20:26:26 [6] ERROR NHibernate.AssertionFailure - An AssertionFailure
> > occurred - this may indicate a bug in NHibernate or in your custom
> > types.
>
> > NHibernate.AssertionFailure: null id in Westshore.Models.SaleProperty
> > entry (don't flush the Session after an exception occurs)
>
> > Basically when I call the Create() function on my models they will not
> > persist back to the database and throws the following exception on the
> > Create() function. From what I've read on the internet I believe this
> > is usually some sort of validation problem with the models; however,
> > all the data I've inputted is valid when I create it and the model's
> > properties are all getting set properly. The ID column is a Native ID
> > which uses an Identity column in SQL 2005.
>
> > This is using a trunk build of Activerecord built on June 29th. There
> > is some code change I must have made to break the model but I can't
> > pinpoint what it is. Any help will be greatly appreciated.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Castle Project Users" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/castle-project-users?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to