Я пытаюсь реализовать простую консольную программу, которая создает некоторые данные и хранит их в db. Проблема в том, что программа работает, только если я вставляю записи через код. Если я попытаюсь прочитать некоторые записи из таблицы, созданной с помощью SqlServer Management Studio, она не работает и не читает 0 записей. Кроме того, кажется, что попытка прочитать эти значения как-то удаляет данные в таблице. Если я проведу SqlServer после выполнения, ранее вставленные записи исчезнут. Это та часть, когда я выполняю чтение:Fluent Nhibernate: не чтение записей из базы данных, которая была вставлена через SqlServer Management Studio
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 для получения полного изображения. –