문제

유창한 nhibernate에서 매핑 오류가 발생합니다. 열을 명시 적으로 지정했을 때 왜 여전히 _id를 찾고 있습니까?

Invalid column name 'Account_id'.
[GenericADOException: could not initialize a collection: [ProtoStack.Business.Entities.Account.LedgerEntries#1][SQL: SELECT ***ledgerentr0_.Account_id*** as Account5_1_, ledgerentr0_.Id as Id1_, ledgerentr0_.Id as Id43_0_, ledgerentr0_.LedgerEntryDate as LedgerEn2_43_0_, ledgerentr0_.Amount as Amount43_0_, ledgerentr0_.AccountId as AccountId43_0_ FROM dbo.LedgerEntry ledgerentr0_ WHERE ledgerentr0_.Account_id=?]]

열이 "AccountID"임을 명시 적으로 지정했습니다.

public class AccountMap : ClassMap<Account>
{
    public AccountMap()
    {
        Table("dbo.Account");
        Id(x => x.Id)
            .Column("Id");
        Map(x => x.Code);
        Map(x => x.Name);
        Map(x => x.Description);
        Map(x => x.Category);
        References(x => x.Group)
            .Column("AccountGroupId");
        HasMany(x => x.LedgerEntries)
            .Inverse()
            .Cascade.All();
    }
}

public class LedgerEntryMap : ClassMap<LedgerEntry>
{
    public LedgerEntryMap()
    {
        Table("dbo.LedgerEntry");
        Id(x => x.Id)
            .Column("Id");
        References(x => x.Account)
            .Column("AccountId");
        Map(x => x.LedgerEntryDate);
        Map(x => x.Amount);
    }
}

내가 뭔가를 놓치고 있습니까?

도움이 되었습니까?

해결책

내 잘못이야. 나는 keycolumn을 놓치고 있었다.

    public class AccountMap : ClassMap<Account>
{
    public AccountMap()
    {
        Table("dbo.Account");
        Id(x => x.Id)
            .Column("Id");
        Map(x => x.Code);
        Map(x => x.Name);
        Map(x => x.Description);
        Map(x => x.Category);
        References(x => x.Group)
            .Column("AccountGroupId");
        HasMany(x => x.LedgerEntries)
            .KeyColumn("AccountId")
            .Inverse()
            .Cascade.All();
    }
}

지금 작동합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top