私はC#と.netのすべてが初めてです。テスト コンソール アプリを使用して Nhibernate 構成をテストしようとしています。
ここに私のテストコンソールアプリがあります
class Program
{
static void Main(string[] args)
{
try
{
NHibernateBase NHB = new NHibernateBase();
NHB.Initialize("NHibernate.GuitarStore");
System.Console.WriteLine("NHibernate.GuitarStore assembly initialized.");
System.Console.ReadLine();
}
catch (Exception ex)
{
string Message = ex.Message;
if (ex.InnerException != null)
{
Message += " - InnerExcepetion: " + ex.InnerException.Message;
}
System.Console.WriteLine();
System.Console.WriteLine("***** ERROR *****");
System.Console.WriteLine(Message);
System.Console.WriteLine();
System.Console.ReadLine();
}
}
}
上記のプログラムを実行すると、次のエラーが表示されます。
***** ERROR *****
Login failed for user 'BUGZILLA\Silon'.
app.config の接続文字列は次のとおりです。
connectionString="Data Source=localhost;Initial Catalog=myGuitarStore;Integrated Security=True
接続文字列の統合セキュリティ部分に関係していると思います。
問題は、接続文字列の属性 (およびその意味) を理解していないことです。また、それらを簡単に説明する記事が見つからないようです。
----問題を理解するために必要な場合に備えて、NHibernateBase クラスを次に示します。
public class NHibernateBase
{
private static Configuration Configuration { get; set; }
protected static ISessionFactory SessionFactory { get; set; }
private static ISession session = null;
private static IStatelessSession statelessSession = null;
public static Configuration ConfigureNHibernate(string assembly)
{
Configuration = new Configuration();
Configuration.AddAssembly(assembly);
return Configuration;
}
public void Initialize(string assembly)
{
Configuration = ConfigureNHibernate(assembly);
SessionFactory = Configuration.BuildSessionFactory();
}
public static ISession Session
{
get
{
if (session == null)
{
session = SessionFactory.OpenSession();
}
return session;
}
}
public static IStatelessSession StatelessSession
{
get
{
if (statelessSession == null)
{
statelessSession = SessionFactory.OpenStatelessSession();
}
return statelessSession;
}
}
public IList<T> ExecuteICriteria<T>()
{
using (ITransaction transaction = Session.BeginTransaction())
{
try
{
IList<T> result = Session.CreateCriteria(typeof(T)).List<T>();
transaction.Commit();
return result;
}
catch (Exception ex)
{
transaction.Rollback();
throw ex;
}
}
}