2014-09-19 32 views
1

我试图在11g中映射的Oracle表到这个类:功能NHibernate异常:从表中X的关联是指未映射类:System.String

public class AdminTest 
{ 
    public virtual int Id { get; set; } 
    public virtual string PlayerName { get; set; } 
    public virtual string ClassYear { get; set; } 
    public virtual char IsMinor { get; set; } 
    public virtual char HasPaid { get; set; } 
    public virtual string Sport { get; set; } 
    public virtual string YearRegistered{ get; set; } 
    public virtual string SemesterChooseSport { get; set; } 
    public virtual char IsCaptain { get; set; } 
    public virtual string PlayerBuUsername { get; set; } 
} 

这流利的映射:

public class AdminTestMap: ClassMap<AdminTest> 
    { 
     public AdminTestMap() 
     { 
      //id is the primary key of the table 
      Table("tbl_117_admintest"); 
      Id(x => x.Id).GeneratedBy.Sequence("seq_117_admintest"); 
      References(x=>x.PlayerName).Column("player_name"); 
      References(x=>x.ClassYear).Column("class_year"); 
      References(x=>x.IsMinor).Column("isMinor"); 
      References(x=>x.HasPaid).Column("hasPaid"); 
      References(x=>x.Sport).Column("sport"); 
      References(x=>x.YearRegistered).Column("year_registered"); 
      References(x=>x.SemesterChooseSport).Column("semester_choose_sport"); 
      References(x=>x.IsCaptain).Column("isCaptain"); 
      References(x=>x.PlayerBuUsername).Column("playerBUUsername"); 
     } 
    } 

具有这种配置: 公共静态ISessionFactory CreateSessionFactory() {

 var cfg = OracleClientConfiguration.Oracle10 
      .ConnectionString(c => 
       c.Is("connstr")); 

     return Fluently.Configure() 
       .Database(cfg) 
       .Mappings(m => m.FluentMappings.AddFromAssemblyOf<Program>().ExportTo(@".\")) 
       .ExposeConfiguration(BuildSchema) 
     .BuildSessionFactory(); 
    } 

我已经看过了帮助这三个环节: http://www.patternwebsolutions.com/2011/07/10/connect-to-oracle-using-fluentnhibernate/ Fluent NHibernate 3 and Oracle.DataAccess http://www.nullskull.com/q/10226070/fluent-nhibernate-configuration-for-oracle-11g.aspx

,我还没有与上述消除异常任何运气:从表中tbl_117_admintest的关联是指未映射类:系统。串。我引用VS13中的Oracle.DataAccess.dll。 任何方向将不胜感激。

回答

3

我没有用过fluent-nhibernate,但提示似乎是系统告诉你它无法找到地图的类。

你永远不会映射一个字符串类。我认为问题在于你正在使用

引用(x => x.PlayerName)来映射所有属性,请尝试使用Map(x => x.PlayerName)来代替。

+0

这似乎解决了为什么我收到该错误消息。现在我收到以下异常:{“尝试加载Oracle客户端库引发BadImageFormatException。在安装了32位Oracle客户端组件的64位模式下运行时,会发生此问题。”}我将不得不提出另一个问题 – miniscem 2014-09-19 14:38:59