【发布时间】:2010-01-02 12:01:11
【问题描述】:
在说明问题之前,请看代码
数据库(Oracle)SQL:
create table test_tab(
id number,
Name varchar2(50)
);
C#中对应的类:
public class TestTable
{
private long id;
public virtual long Id {
get {
return id;
}
set {
id = value;
}
}
private string name;
public virtual string Name
{
get
{
return name;
}
set
{
name = value;
}
}
}
此映射文件:
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="DataTransfer" namespace="DataTransfer">
<class name="DataTransfer.Models.TestTable, DataTransfer" table="TEST_TAB">
<id name="Id" column="ID" type="long" unsaved-value="0">
<generator class="sequence">
<param name="sequence">
seq_test
</param>
</generator>
</id>
<property name="Name" column="NAME" type="string" not-null="false"/>
</class>
</hibernate-mapping>
“TestTable”类位于 DataTransfer 项目下的 Models 文件夹
休眠配置文件:
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
<session-factory>
<property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
<property name="connection.driver_class">NHibernate.Driver.OracleClientDriver</property>
<property name="connection.connection_string">Data Source=xe;Persist Security Info=True;User ID=hr;Password=hr;Unicode=True</property>
<property name="show_sql">false</property>
<property name="dialect">NHibernate.Dialect.Oracle9Dialect</property>
<!-- mapping files -->
<mapping assembly="DataTransfer" />
</session-factory>
</hibernate-configuration>
这是我的 DataAccessLayer 代码;
public void AddToTestTable(Test_Tab user)
{
using (ISession session = GetSession())
{
using (ITransaction tx = session.BeginTransaction())
{
try
{
session.Save(user);
session.Flush();
}
catch (NHibernate.HibernateException)
{
tx.Rollback();
throw;
}
}
}
}
现在的问题是当我向数据库中插入任何值(使用简单的 ASP.NET 表单)时,什么也没有发生(甚至没有例外!)。但是当我没有为 TestTable 类使用“模型”文件夹和为映射文件使用“映射”文件夹时,它工作得很好。请帮帮我。
【问题讨论】:
-
如何将实体插入/添加到数据库?你能显示一些代码吗?例如,您是否刷新会话?或者,你是如何配置flushmode的?
-
糟糕!!!!!!!!!我发现了我的问题!
-
弗林特先生,如果您找到了解决方案,您应该创建一个“答案”并接受它,以便后代从中受益。
标签: c# asp.net nhibernate oracle10g