Fabio, Thanks for your quick reply.
I've tried to do this through a custom dialect and ran into a problem because of the way NHibernate builds the constraint string. ForeignKey.SqlCreateString() adds "alter table <table_name> ", then calls ForeignKey.SqlConstraintString() which appends the output from Dialect.GetAddForeignKeyConstraintString(), normally something like "add constraint [blah] foreign key ([blah]) references [blah]" after that ForeignKey.SqlConstraintString() tacks on " on delete cascade" if cascade delete is enabled. What I need to generate is two separate commands for each foreign key. ALTER TABLE [pf].[Invoice] WITH NOCHECK ADD CONSTRAINT [FKDC60817A07C258D] FOREIGN KEY ([BillTo]) REFERENCES [pf]. [OrderContact] NOT FOR REPLICATION ALTER TABLE [pf].[Invoice] NOCHECK CONSTRAINT [FKDC60817A07C258D] I could output "WITH NOCHECK ADD CONSTRAINT ..." in Dialect.GetAddForeignKeyConstraintString() and then tack on the second ALTER to it (which is kind of a hack in itself). But now if cascade delete is enabled, ForeignKey.SqlConstraintString() will add "on delete cascade", and that will break it. Any ideas? TIA v On Aug 5, 9:44 am, Fabio Maulo <[email protected]> wrote: > On Wed, Aug 4, 2010 at 6:48 PM, Jason Dentler <[email protected]>wrote: > > > You can probably create a custom dialect to do this. I'm not sure if > > there's an easier way. > > Yes Jason, that is the easy way. > Method > GetAddForeignKeyConstraintString > -- > Fabio Maulo -- You received this message because you are subscribed to the Google Groups "nhusers" 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/nhusers?hl=en.
