2

私はそれをグーグルで検索しましたが、nhibernate 3.3 をコードで構成する方法の実例が見つかりませんでした。これが私が見つけたものですが、機能しません。「ユーザーはADO.NET接続を提供する必要があります」という例外がスローされます

var cfg = new Configuration();
cfg.DataBaseIntegration(c=> c.Dialect<MsSql2008Dialect>());
cfg.SetProperty("hibernate.connection.connection_string", "Data Source=localhost;Initial Catalog=Test;Integrated Security=SSPI;")
    .SetProperty("hibernate.connection.driver_class", "NHibernate.Driver.SqlClientDriver")
    .SetProperty("hibernate.connection.provider", "NHibernate.Connection.DriverConnectionProvider");

var mapper = new ConventionModelMapper();
mapper.Class<User>(map =>
{
    map.Id(x => x.Id, m => m.Generator(Generators.Guid));
    map.Property(x => x.UserName);
});
var mapping = mapper.CompileMappingFor(new Type[] { typeof(User) });

cfg.AddDeserializedMapping(mapping, "test");

var factory = cfg.BuildSessionFactory();

var session = factory.OpenSession();

session.SaveOrUpdate(new User() { Id = Guid.NewGuid(), UserName = "Hello" });

session.Flush();
session.Close();
factory.Close();

なにが問題ですか?何が欠けている?実際の例はどこにありますか?

ありがとう

4

1 に答える 1

1

新しい Fluent NHibernate 構成は、Loquacious と呼ばれます。James Kovacsのブログでその紹介を見つけることができます。

また、この SO question もご覧ください。主にコード機能によるマッピング用のリンクのコレクションがあります。

NHibernate 3.2 Loquacious API の概要

構成に関しては、データベース接続を初期化するために .SetProperty() 呼び出しを使用する必要はありません。代わりに、次のようなものを使用します。

var cfg = new Configuration();
cfg.DataBaseIntegration(c=> 
    {
       c.Dialect<MsSql2008Dialect>());
       c.ConnectionString = 
           "Data Source=localhost;Initial Catalog=Test;Integrated Security=SSPI;";
    }
于 2012-08-13T17:27:56.470 に答える