NHibernate映射不';行不通
我创建了控制台应用程序、数据库、模型和XML文件,然后编写了这段代码NHibernate映射不';行不通,nhibernate,Nhibernate,我创建了控制台应用程序、数据库、模型和XML文件,然后编写了这段代码 using System; using System.Reflection; using NHibernate.Cfg; using NHibernate.Dialect; using NHibernate.Driver; namespace NHibernateDemo { internal class Program { static void Main(string[] args) {
using System;
using System.Reflection;
using NHibernate.Cfg;
using NHibernate.Dialect;
using NHibernate.Driver;
namespace NHibernateDemo
{
internal class Program
{
static void Main(string[] args)
{
try
{
var cfg = new Configuration();
cfg.DataBaseIntegration(x =>
{
x.ConnectionString = "Server=.; Database=NHibernateDemo; Integrated Security = SSPI;";
x.Driver<SqlClientDriver>();
x.Dialect<MsSql2008Dialect>();
});
cfg.AddAssembly(Assembly.GetExecutingAssembly());
var sessionFactory = cfg.BuildSessionFactory();
using (var session = sessionFactory.OpenSession())
using (var tx = session.BeginTransaction())
{
var customers = session.CreateCriteria<Customer>()
.List<Customer>();
foreach (var customer in customers)
{
Console.WriteLine("{0} {1}", customer.FirstName, customer.LastName);
}
tx.Commit();
Console.WriteLine("Enter any key to exit...");
Console.ReadKey();
}
}
catch (Exception e)
{
}
}
}
}
您是否已将xml映射文件添加到
程序集.getExecutionGassembly())
?您必须创建嵌入式资源。否则,您将拥有所描述的行为
转到文件的属性以更改生成操作。映射XML文件的根标记必须是
hibernate mapping
(请注意末尾的“g”)映射到Customer
的表是否包含任何行?否则,应用程序的行为与预期的一样。如果它确实包含行,请向我们显示您的映射和NHibernate执行的SQL。当然,我的表包含行!我在问题中添加了XML文件。是的,当然,我更改了嵌入资源上XML文件的构建操作。您能否解释一下是否已将xml映射文件添加到Assembly.getExecutionGassembly())?
。Assembly.getExecutionGassembly是正在执行的assambly。它应该包含xml文件。通常你会把你的实体放在一个单独的攻击中。然后您必须更改配置。这只是用于学习的控制台应用程序,以及我的Assembly containions Customer.nbm.xml-file。文件名应为Customer.hbm.xml非常感谢!我修复了它,但我的应用程序不再工作:(@Heidel,正如我在另一条评论中所写的,请向我们展示NHibernate执行的SQL。你能解释一下如何获取NHibernate执行的SQL吗?我刚开始学习NHibernate。@Heidelcfg.DataBaseIntegration(x=>{x.logsqlincole=true;})
我在控制台中再次得到字符串“输入任意键退出…”
,仅此而已。这是什么意思?
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mappin xmlns="urn:nhibernate-mapping-2.2"
assembly="NHibernateDemo"
namespace="NHibernateDemo">
<class name="Customer">
<id name="Id">
<generator class="native" />
</id>
<property name="FirstName"/>
<property name="LastName"/>
</class>
</hibernate-mappin>