流畅的NHibernate映射错误

时间:2010-08-15 11:26:57

标签: nhibernate fluent-nhibernate

我使用Fluent收到以下错误:

  

12:16:47,879错误[7]   配置[(null)] - 关联   从表中地址指的是   unmapped类:System.Int32   NHibernate.MappingException:An   来自表格地址的关联   指未映射的类:   System.Int32

 public class Address {
        public Address() {
        }
        public virtual int AddressId {
            get;
            set;
        }
        public virtual string AddressLine1 {
            get;
            set;
        }
        public virtual string AddressLine2 {
            get;
            set;
        }
        public virtual string AddressLine3 {
            get;
            set;
        }
        public virtual string BuildingNumber {
            get;
            set;
        }
        public virtual string City {
            get;
            set;
        }
        public virtual string County {
            get;
            set;
        }
        public virtual System.DateTime MovedIn {
            get;
            set;
        }
        public virtual System.DateTime MovedOut {
            get;
            set;
        }
        public virtual int PersonId {
            get;
            set;
        }
        public virtual string PostCode {
            get;
            set;
        }
    } 

 public class AddressMap : ClassMap<Address> {

        public AddressMap() {
   Table("Address");
   LazyLoad();
            Id(x => x.AddressId).GeneratedBy.HiLo("1000");
   Map(x => x.AddressLine1).Length(100).Not.Nullable();
   Map(x => x.AddressLine2).Length(100).Not.Nullable();
   Map(x => x.AddressLine3).Length(100).Not.Nullable();
   Map(x => x.BuildingNumber).Length(250).Not.Nullable();
   Map(x => x.City).Length(250).Not.Nullable();
   Map(x => x.County).Length(250).Not.Nullable();
   Map(x => x.MovedIn).Not.Nullable();
   Map(x => x.MovedOut).Not.Nullable();
   References(x => x.PersonId).Column("PersonId").Not.Nullable();
   Map(x => x.PostCode).Length(15).Not.Nullable();
        }
    }


[TestFixture]
    public class TestBase
    {
        protected SessionSource SessionSource { get; set; }
        protected ISession Session { get; private set; }

        [SetUp]
        public void SetupContext()
        {
            var cfg = Fluently.Configure()
                .Database(MsSqlConfiguration.MsSql2005.ConnectionString(
                    "Data Source=localhost;Initial Catalog=ted;User ID=sa;Password=xxxx;"));
            SessionSource = new SessionSource(cfg.BuildConfiguration()//**Error Here**
                                                 .Properties, new TestModel());
            Session = SessionSource.CreateSession();
            SessionSource.BuildSchema(Session);
        }
        [TearDown]
        public void TearDownContext()
        {
            Session.Close();
            Session.Dispose();
        }
    }

我的初始配置出错了,我已经过了几次而且我真的不确定我到底做错了什么?谁能看到任何明显的东西?我可以确认该表的数据库中只有2个int。 AddressId - 非身份PK和PersonId非身份FK

1 个答案:

答案 0 :(得分:9)

您应该拥有Person类型的Person属性,而不是id。

建议阅读:https://github.com/jagregory/fluent-nhibernate/wiki/Getting-started

相关问题