2010-11-04 2 views
2


Я следующих лицFluent NHibernate словарь проблема отображения

 
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; } 
} 

DB таблицы

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

и следующие отображения:

для entity1

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

для entity2

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

добавление данных работает отлично, и я могу получить и увидеть Entity1.Entities2 заселена, но Entity2.Entities1 не заполняется.

Любые предложения, почему это может быть?

Заранее спасибо.

ответ

0

Я, наверное, неправильно, но вы можете попробовать:

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(); 
+0

Спасибо за предложение, но unfrtunately не решена моя проблема :( – georgejh

Смежные вопросы