2012-09-07 2 views
0

byte [] 프로퍼티 (BLOB)를 가진 하나의 객체를 가진 스키마를 검증해야합니다. 유효성 검사를 실행할 때 OverflowException이 발생합니다. "값이 Int32에 너무 크거나 작았습니다."NHibernate : byte [] 프로퍼티를 가진 스키마 유효성 확인

나는 NHibernate 3.1.0.400 with FluentNHibernate를 사용하고 있습니다. 1.2.0.712 나는 이것을 테스트하기위한 테스트 프로젝트를 만들었습니다. 여기에 코드입니다 (확인하는 동안 폭포) :

static void Main(string[] args) 
    { 
     var configuration = new NHibernate.Cfg.Configuration(); 

     string connectionString = "some connection string"; 
     Console.WriteLine("Running test with connection string: {0}", connectionString); 
     Dictionary<string, string> props = new Dictionary<string, string>() 
               { 
                {"connection.provider", "NHibernate.Connection.DriverConnectionProvider"}, 
                {"connection.driver_class", "NHibernate.Driver.MySqlDataDriver"}, 
                {"connection.connection_string", connectionString}, 
                {"dialect", "NHibernate.Dialect.MySQL5Dialect"}, 
               }; 
     configuration.AddProperties(props); 
     var mappings = Fluently.Configure(configuration) 
      .Mappings(m => m 
           .FluentMappings.AddFromAssemblyOf<DataResource>() 
           .Conventions.AddFromAssemblyOf<DataResource>()); 

     var sessionFactory = mappings 
       .ExposeConfiguration(DoExtendedConfiguration) 
       .BuildSessionFactory(); 
    } 

    private static void DoExtendedConfiguration(Configuration configuration) 
    { 
     SchemaExport schemaExport = new SchemaExport(configuration).SetDelimiter(";").SetOutputFile("schema.sql"); 
     schemaExport.Create(false, true); 

     SchemaValidator schemaValidator = new SchemaValidator(configuration); 
     schemaValidator.Validate(); 
    } 

public class DataResource 
{ 
    public int Id { get; set; } 
    public byte[] Value { get; set; } 
} 
public class DataResourceMap : ClassMap<DataResource> 
{ 
    public DataResourceMap() 
    { 
     Id(x => x.Id); 
     Map(x => x.Value); 
    } 
} 
+0

작동 MS SQL에서 OK이면 VARBINARY (8000) 열이 만들어집니다. 당신은 명시 적으로 값 필드에 대한 큰 길이를 설정하려고 할 수 http://stackoverflow.com/a/4723020/43846 – stuartd

+0

시도, 나를 도와주지 않았어. – Archeg

답변

0

나는 공무원에 같은 버그에 대한 어떤 언급을 찾을 수 없습니다,하지만 난 (Nuget를 통해) 사용 가능한 마지막 버전으로 FluentNhibernate과 NHibernate에 업데이트 후 문제 해결됨. 그 점이 내게 맞습니다. 그래서 아무도 다른 해결책과 스택을 찾지 못하는 것처럼 질문을 마무리 할 것입니다.

관련 문제