-1

したがって、FluentNHibernateに問題があります。私は前のプログラムに基づいてマッピング、クラスとデータベースを作成したので問題は何であったかFluentNHibernate:SessionFactoryの作成中に無効または不完全な設定が使用されました

An invalid or incomplete configuration was used creating a SessionFactory. Check PotentialReasons collection, and InnerException for more detail.

本当にわからない:私は私のテーブルにリンクされていると私はエラーを取得し、すべてのプロパティをマッピングしました。私は、データベース内の情報を配置する特定のクラスがある

namespace WTF.Edit1 
{ 
    public class DataLayer 
    { 
    private static ISessionFactory _factory = null; 
    private static object objLock = new object(); 


    public static ISession GetSession() 
    { 

     if (_factory == null) 
     { 
      lock (objLock) 
      { 
       if (_factory == null) 
        _factory = CreateSessionFactory(); 
      } 
     } 

     return _factory.OpenSession(); 
    } 

    //konfiguracija i kreiranje session factory 
    private static ISessionFactory CreateSessionFactory() 
    { 
     try 
     { 
      var cfg = OracleManagedDataClientConfiguration.Oracle10 
      .ConnectionString(c => 
       c.Is("Data Source=datasource:1111/AAAA;User Id=user;Password=pass")); 

      return Fluently.Configure() 
       .Database(cfg) 
       .Mappings(m => m.FluentMappings.AddFromAssemblyOf<KorisnikMapiranja>()) 
       .BuildSessionFactory(); 
     } 
     catch (Exception ec) 
     { 
      System.Windows.Forms.MessageBox.Show(ec.Message); 
      return null; 
     } 

    } 
} 
} 

::私はSessionFactoryのを作成DataLayerクラスがある

namespace WTF.Edit1.Podaci 
{ 
    public class Korisnik 
    {  
     public virtual string Tip { get; set; } 
     public virtual string Ime { get; set; } 
     public virtual string Prezime { get; set; } 
     public virtual string KorisnickoIme { get; set; } 
     public virtual string Lozinka { get; set; } 
     public virtual string PonovljenaLozinka { get; set; } 
     public virtual string Email { get; set; } 
     public virtual string Pol { get; set; } 

     public virtual IList<Recept> Recepti { get; set; } 
     public virtual IList<Komentar> Komentari { get; set; } 
     public virtual IList<Ocena> Ocene { get; set; } 

     public Korisnik() 
     { 
      Recepti = new List<Recept>(); 
      Komentari = new List<Komentar>(); 
      Ocene = new List<Ocena>(); 
     } 
    } 

    public class User : Korisnik 
    { 
    } 

    public class Admin : Korisnik 
    { 
    } 
} 

とマッピングは次のとおりです。

namespace WTF.Edit1.Mapiranja 
{ 
class KorisnikMapiranja : ClassMap<Korisnik> 
{ 
    public KorisnikMapiranja() 
    { 
     Table("KORISNIK"); 

     Id(x => x.KorisnickoIme, "USERNAME"); 

     Map(x => x.Ime, "IME"); 
     Map(x => x.Prezime, "PREZIME"); 
     Map(x => x.Email, "EMAIL"); 
     Map(x => x.Lozinka, "PASSWORD"); 
     Map(x => x.PonovljenaLozinka, "PASSREPEAT"); 
     Map(x => x.Pol, "POL"); 
     Map(x => x.Tip, "TIP"); 

     HasMany(x => x.Recepti).KeyColumn("USERNAME"); 
     HasMany(x => x.Komentari).KeyColumn("USERNAME"); 
     HasMany(x => x.Ocene).KeyColumn("USERNAME"); 
    } 
} 

class UserMapiranja : SubclassMap<User> 
{ 
    public UserMapiranja() 
    { 
     Table("USERI"); 

     KeyColumn("USERNAME"); 
    } 
} 

class AdminMapiranja : SubclassMap<Admin> 
{ 
    public AdminMapiranja() 
    { 
     Table("ADMIN"); 

     KeyColumn("USERNAME"); 
    } 
} 
} 

何か案は?私は研究して答えを見つけようとしましたが、何も私のために働いていませんでした。

+2

あなたはトップレベルの例外の 'InnerException'プロパティを検査し、それを追加することができますあなたの質問。それは一般的には詳細で、正確な問題を伝えることがよくあります。 –

答えて

0

おそらくOracle管理対象クライアントがありません。 OracleManagedDataClientConfigurationを使用するには、それを参照または到達可能にする必要があります。

可能な場合は、ちょうどそれがあなたの例外を発生するものであるかどうかを確認するためにnugetを通じて対応するパッケージをインストールします。 https://www.nuget.org/packages/Oracle.ManagedDataAccess/

Install-Package Oracle.ManagedDataAccess

関連する問題