我试图将11g中的oracle表映射到此类:
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");
}
}
使用此配置:public static 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中的一个关联引用了一个未映射的类:System.String . 我在VS13中引用了Oracle.DataAccess.dll . 任何方向将不胜感激 .
1 回答
我没有使用fluent-nhibernate,但提示似乎是系统告诉你它无法找到 Map 的类 .
你永远不会映射一个字符串类 . 我认为你正在使用的问题
引用(x => x.PlayerName)来映射所有属性,尝试使用Map(x => x.PlayerName)代替 .