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

一对多亲本关系的非纤维素组分

  •  0
  • veggerby  · 技术社区  · 15 年前

    假设我有一个队列表和一个作业表。在作业表中,队列表有一个外键列queueid,即

    queue.id<--作业.queue id

    使用fluent nhibernate可以很容易地将其映射到队列类中的属性,即

    /* QueueMap */
    HasMany(x => x.Jobs)
       .KeyColumnNames.Add("QueueId");
    

    但是假设我有一个很好的理由在中间有一个类,比如说:

    public class Queue 
    {
        public Group Group { get; set; }
    }
    
    public class Group
    {
        public IList<Job> Jobs { get; private set; }
    }
    

    然后我需要用一个组件来映射这个,也就是说。

    /* QueueMap */
    
    Component(
        x => x.Group,
        y => y.HasMany(x => x.Jobs).KeyColumnNames.Add("QueueId")
    );
    

    当我这样做时,我得到以下信息:

    {"could not initialize a collection: 
    [Queue.Group.Jobs#832fc413-c282-48e8-8cb6-d2a70b0b8de4]
    [SQL: SELECT values0_.QueueId as QueueId1_, values0_.Id as Id1_, values0_.Id 
     as Id16_0_, (....) FROM dbo.Jobs values0_ WHERE values0_.QueueId=?]"}
    

    知道我做错了什么吗…

    1 回复  |  直到 15 年前
        1
  •  1
  •   veggerby    15 年前

    解决了的。这是由于作业映射中的映射问题造成的。