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獲取完整的圖片。 –