いくつかのデータを作成して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");
}
}
誰かがいくつかのアイデアを共有してくださいを持っている場合。
このテーブルの2番目の点に関して、テーブルをマップするクラスにあるコードを使ってコードを編集しました。私はSession.Queryを使用した読み取りだけをコードで行いません。。 –
jacopinho04
それにもかかわらず、 "選択は壊れていません"(https://blog.codinghorror.com/the-first-rule-of-programming-its-always-your-fault/)。あなたが追加したコードは何も証明していません(これらの部分はまだ完全な実行可能プログラムではありませんので、もっとコードがあります)。あなたはあなたがしているすべてのものを見直す必要があります。まったく同じデータベースの同じテーブルから実際に読み込もうとしていますか?あなたは本当にあなたがプログラムやスクリプトをテストするのか、それとも毎回データベースを再初期化しないのですか? NHibernate.SQLのログを有効にするか、SQLプロファイラを使用して完全な画像を取得します。 –