代码之家  ›  专栏  ›  技术社区  ›  Mike

映射生产数据库

  •  2
  • Mike  · 技术社区  · 16 年前

    我刚刚完成了从我们的生产Oracle数据库映射100个表。一路上,我注意到许多关系都不是模型。主要是外置钥匙。

    我应该修改映射以包括适当的关系吗?还是应该保持映射的原样以100%反映数据库?

    我更倾向于将适当的关系映射到地图上,以澄清这些表是如何相互关联的。这是我的意思的一个例子。

    [ActiveRecord("Incident")]
    public class Incident : ActiveRecordBase<Incident>
    {
        [PrimaryKey("IncidentId")]
        public int IncidentId { get; set; }
    
        [Property(Column = "CustomerOut")]
        public int CustomersOut { get; set; }
    
        [Property(Column = "DistrictNumber")]
        public int DistrictNumber { get; set; }
    }
    
    [ActiveRecord("District")]
    public class District : ActiveRecordBase<District>
    {
        [PrimaryKey("DistrictNumber")]
        public int DistrictNumber { get; set; }
    
        [Property(Column = "DistrictName")]
        public string DistrictName { get; set; }
    }
    

    如您所见,事件表中的DistrictNumber列不是fk(belongsto)关系,尽管我认为它应该是。

    3 回复  |  直到 16 年前
        1
  •  1
  •   Rafael Mueller    16 年前

    我将包括不适当的关系。

    有了它,您可以充分受益于NHibernate,一个例子是映射 全部删除孤立 . nhibernate将为您处理所有的孩子,如果没有这个,您必须自己编写代码来删除孩子的记录。

    而且我猜你需要关系来使用懒惰的加载…再次,我认为你应该正确地绘制地图,使你能够充分地使用NHibernate。

        2
  •  1
  •   Community Mohan Dere    9 年前

    我已经回答了 your question here 几天前关于正确的做法: 将关系映射为适当的关系 .

        3
  •  1
  •   gillyb    16 年前

    当然,您应该像在数据库中一样映射关系。使用一个ORM,比如NHibernate,你可以通过完全正确地映射DB获得很多好处!

    否则,你会发现自己写了一堆代码,这是开箱即用的NHibernate…

    推荐文章