2014-10-14 1 views
2

사용자 정의 사용자 유형에 대해 새로운 DbTypes를 등록하려고하는데, 내가 만든 사용자 정의 사용자 유형을 연결하기 위해 asp.net DbTypes 만 사용할 수 있습니다 ..Hibernate : Postgres 용 DbTypes 추가

/// <summary> 
/// An SQL dialect for PostgreSQL 8.2 and above. 
/// </summary> 
/// <remarks> 
/// PostgreSQL 8.2 supports <c>DROP TABLE IF EXISTS tablename</c> 
/// and <c>DROP SEQUENCE IF EXISTS sequencename</c> syntax. 
/// See <see cref="PostgreSQLDialect" /> for more information. 
/// </remarks> 
public class PostgreSQL82Dialect : PostgreSQL81Dialect 
{ 
    public PostgreSQL82Dialect() 
    { 
     RegisterColumnType(DbType.Guid, "uuid"); 
     RegisterColumnType(DbType.Object, "uuid[]"); 
     RegisterColumnType(DbType.Object, "integer[]"); 
     RegisterColumnType(DbType.Binary, "jsonb"); 
    } 

    public override bool SupportsIfExistsBeforeTableName 
    { 
     get { return true; } 
    } 

    public override string GetDropSequenceString(string sequenceName) 
    { 
     return string.Concat("drop sequence if exists ", sequenceName); 
    } 
} 

uuid [], integer [] 및 jsonb를 추가했습니다. 유일한 문제는 스키마 업데이트를 시도 할 때 항상 주어진 dbtype에 대해 등록 된 마지막 열 유형을 얻는 것입니다. 그 문제는 배열이나 얼룩에 대해 지정된 .net 데이터 유형이 없다는 것입니다. 그래서 그들을 위해 객체를 사용해야합니다.

var update = new SchemaUpdate(configuration); 
    update.Execute(true, true); 

NHibernate에이지도하는 방법을 알 수 있도록하는 또 다른 방법이 있나요 : 내가 지금과 같은 스키마 업데이트를 호출 할 때이 경우, 객체의 DbType과가있는 모든 사용자 정의 사용자 유형은 항상 데이터베이스에 정수 배열 될 것입니다 데이터베이스에 대한 열?

미리 감사드립니다.

답변

관련 문제