SchemaExport с FluentNhibernate - PullRequest
       20

SchemaExport с FluentNhibernate

1 голос
/ 22 сентября 2009

Что-то не так с этим кодом?Я не получаю ничего сгенерированного, и никакие исключения не выданы.

  public static void ExportSchema()
        {
            Configuration cfg = LoadDefaultConfiguration();
            Fluently.Configure(cfg)
                .Mappings(m => m.FluentMappings.AddFromAssembly(Assembly.Load("dnnSphere.Meta")))
                .ExposeConfiguration(c => new SchemaExport(c).SetOutputFile("myDDL.sql").Execute(true,true,false));
        }

1 Ответ

6 голосов
/ 22 сентября 2009

Это зависит от того, что вы хотите сделать. Если вы, например, используете SQLite в памяти db, я никогда не получу его, пока я не укажу соединение. Это означает, что я должен сначала открыть сеанс и получить соединение сеанса.

    protected InMemoryFixture()
    {

        Configuration config = GetConfig();
        ISessionFactory sessionFactory = config.BuildSessionFactory();


        ISession session = _sessionFactory.OpenSession();

        new SchemaExport(_config).Execute(true, true, false, session.Connection, Console.Out);

    }

    private Configuration GetConfig()
    {
        return GetMappings()
            .Database(SQLiteConfiguration.Standard.InMemory)
            .BuildConfiguration();
    }

    private FluentConfiguration GetMappings()
    {
        return Fluently.Configure().Mappings(m => m.FluentMappings.AddFromAssemblyOf<NewsMap>());
    }

Тогда есть также SchemaExport (cfg) .Create (true, true); и SchemaUpdate (cfg), конечно.

...