我是NHibernate的新手。我可以使用Fluent Hibernate的以下语句进行处理吗,例如不存在表,如果该表存在,则创建新表,使用Fluent Nhibernate将其插入值中。
namespace ConsoleApplication1
{
public class Program
{
public string connectionString = "Server=127.0.0.1; Port=5432; User Id=credit; Password=123;Database=databir;";
public static ISessionFactory CreateSessionFactory()
{
ISessionFactory isessionFactory = Fluently.Configure()
.Database(PostgreSQLConfiguration.PostgreSQL81
.ConnectionString("Server=127.0.0.1; Port=5432; User Id=credit; Password=123;Database=databir;"))
.Mappings(m => m
.FluentMappings.AddFromAssemblyOf<MapUser>()).ExposeConfiguration(c => {
var schema = new SchemaExport(c);
schemaExport.Execute(true,false,false);
})
.BuildSessionFactory();
return isessionFactory;
}
static void Main(string[] args)
{
var staff = CreateSessionFactory();
using (ISession session = staff.OpenSession())
{
using (var txt = session.BeginTransaction())
{
user1 user = new user1
{
name = "jakhongir"
};
session.Save(user);
txt.Commit();
}
}
}
}
}
我不能每次都在数据库中创建新表,如果表不存在,那么每次插入该表时都要做什么以创建新表
答案 0 :(得分:1)
此代码...
var schema = new SchemaExport(c);
schemaExport.Execute(true,false,false);
...每次创建SessionFactory
时都会创建新表。您需要围绕此声明做出一些决策。 Updating模式而不是将其导出可能更合适?