0
我想实现一个简单的控制台程序,创建一些数据并将其存储到数据库。问题是,只有通过代码插入记录,程序才能正常工作。如果我尝试从使用SqlServer Management Studio创建的表中读取一些记录,则它不工作并读取0条记录。此外,似乎尝试读取此值会以某种方式删除表中的数据。如果在执行后检查SqlServer,则以前插入的记录消失。此,当我执行读取的部分:流利Nhibernate:不从数据库中读取记录通过SqlServer管理工作室插入
using(var session = NHibernateHelper.OpenSession())
{
using(var transaction = session.BeginTransaction())
{
var DepartmentObject = InsertDepartment("IT", "962788700227");
var firstEmployee = InsertEmployee("Jacopo", "disoccupated", DepartmentObject);
var secondEmployee = InsertEmployee("Andrea", "programmatore", DepartmentObject);
var thirdEmployee = InsertEmployee("Davide", "fashion-blogger", DepartmentObject);
session.Save(DepartmentObject);
session.Save(firstEmployee);
session.Save(secondEmployee);
session.Save(thirdEmployee);
transaction.Commit();
var elencoEmployee = session.Query<Employee>().ToList(); // this reading is working because I create the table and insert values via code
var elencoTabTest = session.Query<TabTest>().ToList(); // this reading return a list of 0 elements but on the db there is a table named TabTest with 2 records
}
}
InsertEmployee
的和InsertDepartment
功能仅创建一个Employee/Department
对象设置其属性。
这是类TabTest
应地图,我想读表:
class TabTest
{
public virtual int Id { get; set; }
public virtual string Descrizione { get; set; }
}
class TabTestMap : ClassMap<TabTest>
{
public TabTestMap()
{
Id(x => x.Id);
Map(x => x.Descrizione);
Table("TabTest");
}
}
如果有人有一些想法,请分享。
我使用映射表的类中存在的代码编辑了代码,关于此表中的第二点,我只通过Session.Query进行的读取没有做任何事情。 –
jacopinho04
尽管如此,“选择没有中断”(https://blog.codinghorror.com/the-first-rule-of-programming-its-always-your-fault/)。你添加的这段代码并不能证明任何东西(这些代码仍然不是一个完整的可运行程序,所以显然你有更多的代码)。你需要检查你所做的一切 - 你是否真的试图在同一个数据库中读取同一张表?你真的确定你编程或测试脚本,或者是否每次运行都不重新初始化数据库吗?打开NHibernate.SQL的日志记录或使用SQL Profiler获取完整的图片。 –