MySQL 용 Automapping으로 Fluent NHibernate를 구성하려고하는데 문제가 생겼습니다. 내가 꽤 많이 봤 거든 많은 다른 것들을 시도했지만 아직 해결책을 찾지 못했습니다.Fluent NHibernate with MySQL with Mono and ASP MVC 3
[AutoMap]
public class MyNewTable
{
public virtual int Id {get; set;}
public virtual string Column1 {get; set;}
[Null]
public virtual string Column2 {get; set;}
}
가 여기에 기록 삽입을 시도 내 코드입니다 : 어쨌든
는 여기 여기 내 모델의 내 NHibernate에 구성return
Fluently.Configure()
.Database(
MySQLConfiguration.Standard.ConnectionString(cs => cs.FromConnectionStringWithKey("Db"))
.Dialect<NHibernate.Dialect.MySQL5Dialect>()
.ShowSql()
)
.Mappings(
x =>
x.AutoMappings
.Add(
FluentNHibernate.Automapping.AutoMap.AssemblyOf<CoreRegistry>()
.Where (t => t.IsDefined(typeof(AutoMap), false))
.Conventions.Setup (c => {
c.Add<NullConvention>();
c.Add<PrimaryKeyConvention>();
c.Add<TableNameConvention>();
})
)
).BuildSessionFactory();
의
using (var session = sf.OpenSession())
using (var tx = session.BeginTransaction()) {
var myReallyTable = new MyNewTable
{
Column2 = null,
Column1 = "ghrtehrthrtete"
};
session.Save (myReallyTable);
tx.Commit();
}
마지막을, 여기에 SQL입니다 실제로 생성하는 것 :
INSERT INTO myproject.Core.MyNewTable, myproject.Core, Version=1.0.4911.33346, Culture=neutral, PublicKeyToken=null (Column1, Column2) VALUES (?, ?)
어떤 이유로 프로젝트 이름을 테이블 이름 앞에 삽입하고 어셈블리 버전과 그 뒤에 내용을 추가합니다. 데이터베이스 이름에 기본 스키마를 설정하려고했습니다. 나는 방언을 MySQLDialect로 바꾸려고했지만, 그 중 하나도 작동하지 않았다.
누구든지이 부분에 빛이 비치면 매우 감사 할 것입니다.
감사합니다.