Почему schemaexport генерирует 2 внешних ключа? - PullRequest
1 голос
/ 12 июня 2011

Я использую fluentnhibernate на SQL Server 2008.

У меня есть предметы Посох

public class Staff : BaseEntity
{
    public virtual string UserName { get; set; }
    public virtual string FirstName { get; set; }
    public virtual string LastName { get; set; }
    public virtual string Email { get; set; }
    public virtual bool Active { get; set; }
    public virtual StaffRole StaffRole { get; set; }
}

и StaffRole

public class StaffRole : BaseEntity
{
    public virtual int RoleId { get; set; }
    public virtual int RoleName { get; set; }
    public virtual IList<Staff> Staffs { get; set; }
}

и сопоставил их соответственно:

public class StaffRoleMap : ClassMap<StaffRole>
{
    public StaffRoleMap()
    {
        Id(x => x.RoleId).Not.Nullable().Length(15);
        Map(x => x.RoleName).Not.Nullable().Length(75);
        HasMany(x => x.Staffs);
    }
}
public class StaffMap : ClassMap<Staff>
{
    public StaffMap()
    {
        Id(x => x.UserName).Not.Nullable().Length(15);
        Map(x => x.FirstName).Not.Nullable().Length(25);
        Map(x => x.LastName).Not.Nullable().Length(25);
        Map(x => x.Email).Not.Nullable().Length(30);
        Map(x => x.Active).Not.Nullable().Default("1");
        References(x => x.StaffRole)
            .ForeignKey("FKStaffRole")
            .Column("RoleId")
            .Cascade.None()
            .Not.Nullable()
            ;
    }
}

Когда я вызываю schemaexport, почему он генерирует 2 внешних ключа для StaffRole? Я всегда получаю RoleId и StaffRole_id . RoleId является верным, поскольку он не может иметь значение NULL, но дополнительный столбец / FK имеет значение NULL.

Я что-то здесь упускаю?

1 Ответ

1 голос
/ 12 июня 2011

Да.Вы должны установить «обратный» на одной стороне отношений.Это было бы эквивалентно установке inverse = true в обычном конфиге nhibernate xml.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...