我刚刚爱上了 NHibernate 和流畅的界面。后者通过重构支持实现了非常好的映射(不再需要 xml 文件)。
但是没有人是完美的,所以我错过了流利的多对任意映射。有人知道它是否已经存在吗?如果是这样,一个简单的代码行会很好。
但要坚持问题的标题,有没有办法结合流畅和正常的 NHibernate 映射。
目前,我将以下几行用于我的测试设置 WITH fluent,以及我的测试的第二个代码块,而不使用 fluent(使用 XML 映射)。我怎么能告诉流利使用流利的 IF AVAILABLE 和 XML 否则......
var cfg = new Configuration();
cfg.AddProperties(MsSqlConfiguration.MsSql2005.ConnectionString.Is(_testConnectionstring).ToProperties());
cfg.AddMappingsFromAssembly(typeof(CatMap).Assembly);
new SchemaExport(cfg).Create(true, true);
var persistenceModel = new PersistenceModel();
persistenceModel.addMappingsFromAssembly(typeof(CatMap).Assembly);
IDictionary<string, string> properties = MsSqlConfiguration.MsSql2005.UseOuterJoin().ShowSql().ConnectionString.Is(_testConnectionstring).ToProperties();
properties.Add("command_timeout", "340");
session = new SessionSource(properties, persistenceModel).CreateSession();
没有流利...
config = new Configuration();
IDictionary props = new Hashtable();
props["connection.provider"] = "NHibernate.Connection.DriverConnectionProvider";
props["dialect"] = "NHibernate.Dialect.MsSql2005Dialect";
props["connection.driver_class"] = "NHibernate.Driver.SqlClientDriver";
props["connection.connection_string"] = "Server=localhost;initial catalog=Debug;Integrated Security=SSPI";
props["show_sql"] = "true";
foreach (DictionaryEntry de in props)
{
config.SetProperty(de.Key.ToString(), de.Value.ToString());
}
config.AddAssembly(typeof(CatMap).Assembly);
SchemaExport se = new SchemaExport(config);
se.Create(true, true);
factory = config.BuildSessionFactory();
session = factory.OpenSession();
就是这样……克里斯
PS:我真的很喜欢这个网站,界面非常完美,所有文章的质量都令人难以置信。我认为这将是巨大的:-) 必须注册...