StackOverflow の友人の皆さん、キャッシュされたクエリを使用して、いくつかの nhibernate エンティティをキャッシュできるようにしたい状況があります。MVC 4 プロジェクトでこれを構成する最良の方法を見つけようとしています。私のNHibernateレイヤーは別のレイヤーにあり、DIにWindsorを使用しています。
以下のことができるようになりたいと思います。たとえば、データベースに UserTypes テーブルがあるとします。PK は GUID/一意の識別子です。このデータが必要になるたびに選択の料金を支払う代わりに、Session.Load(guid) を実行できるようにしたいと考えています。
ここにいくつかのコードがあります。このようにハードコードされた GUID は好きではありません。GUID を web.config に詰め込むことができると思いますが、何かが変更された場合に備えて、より自動化したいと思います。
nhsession.Save(new User
{
UserType = nhsession.Load<UserType>(Guid.Parse("BE4A74B1-5B21-4109-AD69-A0AF00FC879F")),
UserSetting = nhsession.Load<UserSetting>(Guid.Parse("CB0B2053-E173-408D-A991-A09B00E45330")),
UserName = userDto.UserName,
Password = hash,
Salt = salt,
IsLockedOut = 0,
InvalidLoginAttempts = 0,
ActivationCode = activationCode,
Active = active,
LastLoginDate = DateTime.Now,
DateCreated = DateTime.Now,
LastUpdated = DateTime.Now,
Profile = new Profile
{
EmailAddress = userDto.UserName,
Active = 1,
DateCreated = DateTime.Now,
LastUpdated = DateTime.Now
}
});