【问题标题】:Fluent NHibernate Dictionary mapping problemFluent NHibernate Dictionary 映射问题
【发布时间】:2010-11-05 02:49:44
【问题描述】:


我有以下实体

public class Entity1 { public virtual Guid Id { get; set; } public virtual IDictionary<Guid, Entity2> Entities2 { get; set; } } public class Entity2 { public virtual Guid Id { get; set; } public virtual IDictionary<Guid, Entity1> Entities1 { get; set; } }

数据库表

CREATE TABLE [dbo].[EntityLinks]( [Entity1Id] [uniqueidentifier] NOT NULL, [Entity2Id] [uniqueidentifier] NOT NULL, [LinkItemId] [uniqueidentifier] NOT NULL )

以及以下映射:

对于实体 1

mapping.HasManyToMany<Entity2>(rc => rc.Entities2) .Table("EntityLinks") .ParentKeyColumn("Entity1Id") .ChildKeyColumn("Entity2Id") .AsMap<Guid>("LinkItemId")

对于实体 2

mapping.HasManyToMany<Entity1>(rc => rc.Entities1) .Table("EntityLinks") .ParentKeyColumn("Entity2Id") .ChildKeyColumn("Entity1Id") .AsMap<Guid>("LinkItemId")

添加数据工作正常,我可以看到 Entity1.Entities2 已填充,但 Entity2.Entities1 未填充。

有什么建议吗?

提前谢谢你。

【问题讨论】:

    标签: fluent-nhibernate


    【解决方案1】:

    我可能错了,但你可以试试:

    mapping.HasManyToMany<Entity2>(rc => rc.Entities2)
      .Table("EntityLinks")
      .ParentKeyColumn("Entity1Id")
      .ChildKeyColumn("Entity2Id")
      .AsMap<Guid>("LinkItemId")
      .Inverse()
    

    mapping.HasManyToMany<Entity1>(rc => rc.Entities1)
      .Table("EntityLinks")
      .ParentKeyColumn("Entity2Id")
      .ChildKeyColumn("Entity1Id")
      .AsMap<Guid>("LinkItemId")
      .Cascade.All();
    

    【讨论】:

    • 感谢您的建议,但不幸的是没有解决我的问题:(
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-03-15
    • 2011-08-08
    • 1970-01-01
    • 1970-01-01
    • 2011-07-17
    • 2010-09-19
    • 2011-04-10
    相关资源
    最近更新 更多