> > are you saying that I should remove the explicit call to "CustomSqlTypeIs" > and let NHibernate automatically take care of the conditional logic for what > the Sql type should be? >
Yup :) This is the exact reason that dialects exist. Dialects are a way to work with a database consistently, completely agnostic of the specific implementation nuances. In your case, the differences between MsSql and SqLite's binary container columns. On Mon, Apr 27, 2009 at 11:04 PM, Action Jackson <[email protected]> wrote: > > Hi Hudson, thank you for the quick response. FileData is a byte > array (byte[]). As for my database configuration, I am using the > SqlLite20Driver and the SQLiteDialect for testing purposes. For your > #1 suggestion, are you saying that I should remove the explicit call > to "CustomSqlTypeIs" and let NHibernate automatically take care of the > conditional logic for what the Sql type should be? Also, I noticed I > messed up the copy and paste job of my mapping. The constructor name > didn't match the class name. Sorry for any confusion out there. > > public class MyFileMap : ClassMap<MyFile> > { > public MyFileMap() > { > Id(x => x.Id); > Map(x => x.FileData) > .CustomSqlTypeIs("varbinary(MAX)"); > } > } > > > > On Apr 27, 10:34 pm, Hudson Akridge <[email protected]> wrote: > > 1.) What is your FileData? Assuming it's marked as serializable, > NHibernate > > should default to mapping it to a BLOB or varbinary depending on the > dialect > > used during configuration. You then set the different dialects during > > different initialization routines depending on if you're testing or > running > > production code. That's actually the entire intent behind the Dialect > > concept in a NHibernate configuration.2.) Assuming there's some scenario > > that it doesn't make any sense to use #1 in, you could always do it the > long > > way, and just have a static string in a class that's initialized to a > > different value (BLOB vs varbinary) depending on your configuration. Then > > your CustomSqlTypeIs() would call that string holder. Or something along > > those lines. I'd have to say, in my experience, #1 is the way to go if > you > > can help it :) > > > > > > > > On Mon, Apr 27, 2009 at 9:49 PM, Action Jackson <[email protected]> > wrote: > > > > > Does anyone know if it is possible to use conditional logic to > > > construct Fluent mappings? Specifically, I would like to take the > > > following mapping: > > > > > public class MyFileMap : ClassMap<MyFile> > > > { > > > public WksFileMap() > > > { > > > Id(x => x.Id); > > > Map(x => x.FileData) > > > .CustomSqlTypeIs("varbinary(MAX)"); > > > } > > > } > > > > > I would like to conditionally specify the custom sql type for the > > > FileData property. When testing, I would like to use SqlLite; thus, I > > > would need to use BLOB as the sql type since SqlLite does not support > > > the varbinary(MAX) sql type. However, in production, I would like to > > > keep the mapping above. Is there a way to do this in a clean way? I > > > came across a blog where ActiveRecord is used, allowing you to plug > > > into the initialization pipeline. However, I'm not using > > > ActiveRecord. Is there some similar event model I can look into? > > > > > Thanks for any insights!- Hide quoted text - > > > > - Show quoted text - > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Fluent NHibernate" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/fluent-nhibernate?hl=en -~----------~----~----~----~------~----~------~--~---
