这种关系如何表达?

Aug 11, 2010 at 4:08 AM
Edited Aug 11, 2010 at 4:09 AM

表1:同学
id Name
1 张三
2 李四
3 王五
4 赵六
表2: 同桌
id 同学1 同学2
1 1 2
2 3 4
    public abstract class 同学: DbObjectModel<同学>
    {
        [Length(50)]
        public abstract string Name { get; set; }
        [HasOne]
        public abstract 同桌 { get; set; }
        [HasOne]
        public abstract 同桌 { get; set; }
    }
    public abstract class 同桌: DbObjectModel<同桌>
    {
        [BelongsTo]
        public abstract 同学 { get; set; }
        [BelongsTo]
        public abstract 同学 { get; set; }
       }

Coordinator
Aug 12, 2010 at 4:00 AM
Edited Aug 12, 2010 at 4:02 AM

可以使用:

public class User : DbObjectModel<User>
{
    [Length(1, 20)]
    public string Name { get; set; }

    [HasOne]
    public User Deskmate1 { get; set; }

    [BelongsTo]
    public User Deskmate2 { get; set; }
}

不过,目前对这种自关联的情况,容易造成死循环,建议不要使用关系,而是将xxx_id定义为long,自行读取和设置此id值。如:

public class User : DbObjectModel<User>
{
    [Length(1, 20)]
    public string Name { get; set; }

    public long UserID { get; set; }
}

Aug 16, 2010 at 9:33 AM
楼上正解,直接上long对于复杂关系颇好。