그래서 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를 생성 데이터 영역 클래스입니다
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");
}
}
}
어떤 아이디어? 나는 연구하고 대답을 찾으려고했지만 아무 것도 나를 위해 일했습니다.
당신이 최상위 예외의'InnerException' 속성을 검사하고에 추가 할 수 있습니다 :
가능하면 그 당신의 예외의 원인이 무엇인가하면, 바로 볼 수 nuget을 통해 해당 패키지를 설치 너의 질문. 일반적으로 잘 설명되어 있으며 정확한 문제를 알려줍니다. –