내 도메인 로직에서 nhibernate 매핑 파일과 DB 구성을 어떻게 생성 할 수 있습니까?
-
03-07-2019 - |
해결책
매핑 정보 : 게리와 같은 유창한 매핑으로 매핑을 만들 수 있습니다. 매우 복잡하지 않은 도메인 모델이 있으면 fluentnhibernate의 컨벤션 기반 매핑 기능 인 Automapping을 사용할 수 있습니다.
var sessionFactory = Fluently.Configure()
.Database(MsSqlConfiguration.MsSql2005
.ConnectionString(c => c
.Is(ApplicationConnectionString)))
.Mappings(m =>
m.AutoMappings.Add(AutoPersistenceModel.MapEntitiesFromAssemblyOf<Product>())
)
.BuildSessionFactory();
그리고 그게 당신이 필요한 전부입니다.
SchemaExport를 사용하여 데이터베이스를 빌드 할 수 있습니다.
var schemaExport = new SchemaExport(configuration);
schemaExport.Create(false,true);
다른 팁
좋아요 유창한-비버 네이트. 사용자 클래스를 매핑하려면 아래 예제를 참조하십시오. 물론 XML을 사용할 수 있습니다.
Lamda 표현식의 x 값은 도메인 클래스를 나타냅니다.
이것은 내가 좋아하는 ROR과 매우 흡사합니다.
public sealed class UserMap : ClassMap<User>, IMapGenerator
{
public UserMap()
{
Id(x => x.Id)
.WithUnsavedValue(0);
Map(x => x.Username).TheColumnNameIs("UserName");
Map(x => x.Password).TheColumnNameIs("Password");
Map(x => x.Salt).ReadOnly();
Map(x => x.CreatedOn).ReadOnly();
Map(x => x.CreatedBy).ReadOnly();
Map(x => x.CreatedAt).ReadOnly();
Map(x => x.ApprovalStatus)
.TheColumnNameIs("ApprovalStatusId")
.CustomTypeIs(typeof(ApprovalStatus));
Map(x => x.DeletionStatus)
.TheColumnNameIs("DeletionStatusId")
.CustomTypeIs(typeof(DeletionStatus));
References(x => x.Role).Not.Nullable();
References(x => x.Contact);
}
#region IMapGenerator Members
public System.Xml.XmlDocument Generate()
{
return CreateMapping(new MappingVisitor());
}
#endregion
}
제휴하지 않습니다 StackOverflow