2009-12-01 14 views
5

Tôi nhận được lỗi này:NHibernate Mapping Ngoại lệ: Một liên kết từ các dbo.AccountGroup bảng đề cập đến một lớp unmapped: System.String

Một liên kết từ bảng dbo.AccountGroup đề cập đến một lớp unmapped: System. chuỗi

Đây là thực thể của tôi:

public class AccountGroup 
{ 
    public virtual int Id { get; private set; } 
    public virtual string Name { get; set; } 
    public virtual string Parent { get; set; } 
    public virtual string Description { get; set; } 
    public virtual IList<Account> Accounts { get; set; } 

    public AccountGroup() 
    { 
     this.Accounts = new List<Account>(); 
    } 
} 

public class Account 
{ 
    public virtual int Id { get; private set; } 
    public virtual string Code { get; set; } 
    public virtual string Name { get; set; } 
    public virtual string Description { get; set; } 
    public virtual int Category { get; set; } 
    public virtual AccountGroup Group { get; set; } 
    public virtual IList<LedgerEntry> LedgerEntries { get; set; } 

    public Account() 
    { 
     this.LedgerEntries = new List<LedgerEntry>(); 
    } 
} 

Đây là bản đồ của tôi:

public AccountGroupMap() 
    { 
     Table("dbo.AccountGroup"); 
     Id(x => x.Id) 
      .Column("Id"); 
     Map(x => x.Name); 
     References(x => x.Parent) 
      .Column("Parent"); 
     Map(x => x.Description); 
     HasMany(x => x.Accounts) 
      .KeyColumn("GroupId") 
      .Inverse() 
      .Cascade.All(); 
    } 
} 

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

Dưới đây là bảng của tôi:

CREATE TABLE AccountGroup ( Id int PRIMARY KEY, Tên varchar (20), int phụ huynh, Mô tả varchar (20) )

CREATE TABLE Tài khoản ( Id int PRIMARY KEY, Mã varchar (30), Tên varchar (20), Mô tả varchar (20), Thể loại int, AccountGroupId int, KEY NƯỚC NGOÀI (AccountGroupId) THAM KHẢO AccountGroup (Id) )

Trả lời

14

Bạn có

References(x => x.Parent) 
     .Column("Parent"); 

Khi Chánh được định nghĩa là

public virtual string Parent { get; set; } 

Bạn không có thể tham khảo một chuỗi (trừ khi đó là một yếu tố thu)

+0

Cảm ơn ... Tôi đã gặp sự cố tương tự. Ước gì tôi có thể bình chọn nhiều hơn một lần :) –

Các vấn đề liên quan