在nhibernate使用过程中遇到的几个问题02
2004-11-25 16:57
861 查看
1.可以建立这样一个类帮助简化程序的初始化。
using System;
using System.Reflection;
using NHibernate;
using NHibernate.Cfg;
using NHibernate.Dialect;
namespace Yx.Pacs.ImageServer.Data
{
/// <summary>
/// SessionHelper 的摘要说明。
/// </summary>
public class SessionHelper
{
private static ISessionFactory sessions;
private static Configuration cfg;
private static Dialect dialect;
private static bool inited;
public static ISessionFactory SessionFactory
{
get
{
if (!inited) Init();
return sessions;
}
}
public static Configuration Configuration
{
get
{
if (!inited) Init();
return cfg;
}
}
public static Dialect Dialect
{
get
{
if (!inited) Init();
return dialect;
}
}
public static ISession OpenSession()
{
if (!inited) Init();
return sessions.OpenSession();
}
private static void Init()
{
string[] files = new string[]{"Study.hbm.xml"};
cfg = new Configuration();
for (int i=0; i<files.Length; i++)
cfg.AddResource("Hel420.Test.Data.hbm." + files[i], Assembly.Load("Hel420.Test"));
dialect = Dialect.GetDialect();
sessions = cfg.BuildSessionFactory( );
inited = true;
}
}
}
2.Session在使用Load方法的时候特别挑剔。
比如: Study study = (Study)session.Load(typeof(Study), 1L);
如果Study的Id是Long类型的话,就必须加L,否则会出现错误。
而起如果传进来的是Int32的话,就必须转换成Int64类型。
using System;
using System.Reflection;
using NHibernate;
using NHibernate.Cfg;
using NHibernate.Dialect;
namespace Yx.Pacs.ImageServer.Data
{
/// <summary>
/// SessionHelper 的摘要说明。
/// </summary>
public class SessionHelper
{
private static ISessionFactory sessions;
private static Configuration cfg;
private static Dialect dialect;
private static bool inited;
public static ISessionFactory SessionFactory
{
get
{
if (!inited) Init();
return sessions;
}
}
public static Configuration Configuration
{
get
{
if (!inited) Init();
return cfg;
}
}
public static Dialect Dialect
{
get
{
if (!inited) Init();
return dialect;
}
}
public static ISession OpenSession()
{
if (!inited) Init();
return sessions.OpenSession();
}
private static void Init()
{
string[] files = new string[]{"Study.hbm.xml"};
cfg = new Configuration();
for (int i=0; i<files.Length; i++)
cfg.AddResource("Hel420.Test.Data.hbm." + files[i], Assembly.Load("Hel420.Test"));
dialect = Dialect.GetDialect();
sessions = cfg.BuildSessionFactory( );
inited = true;
}
}
}
2.Session在使用Load方法的时候特别挑剔。
比如: Study study = (Study)session.Load(typeof(Study), 1L);
如果Study的Id是Long类型的话,就必须加L,否则会出现错误。
而起如果传进来的是Int32的话,就必须转换成Int64类型。
相关文章推荐
- Flex的窗口、局部变量、对象等运行期监视工具
- flash完全解析xml
- 经典笑话
- Java学习从入门到精通
- 计算机自动编程
- Visual C#.Net网络程序开发-Tcp篇
- 东坡诗
- Windows自启动大揭密
- 弹出窗口杀手
- 如何评估你的数据库性能以及问题诊断
- 帮助关于安装visual studio 2005
- windows IIS 5.1 映射通配符错误
- System.Threading.Timer类的TimerCallback 委托(自动关闭窗体)
- Thanksgiving Day
- Portable Document Format (PDF) Tools
- 近日粗学的小笔记
- Linux下的时间概念
- STS文档库的事件跟踪不能生效的解决办法
- Visual Studio.NET 2005 (Whidbey) 初探
- asp.net如何连接oracle数据库(新策略)