FYI: If I collect the Employee object instances into a List<Employee> and iterate through them via foreach loop and call SaveOrUpdate method, the INSERT's into dbo.[Employee] occur. Later on, when the example code saves the Store objects, it also generates corresponding UPDATE EMPLOYEE ... SET Store_Id ... WHERE Id = ...., so hopefully, whatever part of Fluent NHibernate doesn't realize that the unsaved Stored instances contain a List<Employee> of unsaved Employee instances can be corrected in short order and I can remove my temporary work-around.
On Feb 12, 5:56 pm, James Gregory <[email protected]> wrote: > Somebody else just raised this exact issue today, I'll investigate asap. > Thanks. > > > > On Thu, Feb 12, 2009 at 9:20 PM, fmorriso <[email protected]> wrote: > > > I'm running the Examples.FirstProject using Microsoft SQL Server 2008 > > Developer Edition and Visual Studio 2008 SP1, .Net Framework 3.5 SP1 > > and it does not generate any INSERT's for the Employee table. > > > The narrative for the example indicates that saving a Store object > > should auto-generate any necessary Employee INSERT's, but the output > > on the console shows only INSERT's for Store, Product and > > StoreProduct. A SELECT * FROM dbo.[Employee] returns zero rows. > > > There aren't very many changes needed to switch the example to use SQL > > Server 2008, but perhaps one or more of those changes I made could > > have disabled the automatic generation of Employee INSERT > > statements? I hate to post tons of code, so if somebody could email > > me to show me how to upload the code, I'd be glad to share it - and > > maybe learn something in the process. > > > Here's just a small example of a change I made to allow the example to > > use SQL Server 2008. Hopefully, I didn't mess it up too bad: > > > /// <summary> > > /// Sets up the required NHibernate session factory > > /// </summary> > > /// <returns>ISessionFactory instance</returns> > > private static ISessionFactory CreateSessionFactory() > > { > > string connString = GetDatabaseConnectionString(); > > Console.WriteLine(connString); > > > // Use Fluent NHibernate instead of an NHibernate XML > > config file > > return Fluently.Configure() > > .Database(MsSqlConfiguration.MsSql2005 > > .ConnectionString(c => c.Is(connString)) > > .ShowSql() > > .DefaultSchema("dbo") > > ) > > .Mappings(m => m > > .FluentMappings.AddFromAssemblyOf<Program>() > > ) > > //WARNING: will DROP/CREATE tables .ExposeConfiguration > > (BuildSchema) > > .BuildSessionFactory(); > > } > > > I built the database myself (so I'm a control freak, sue me) rather > > than end up with weird PK and FK constraint names. > > > The DDL for the Employee table looks like this: > > > CREATE TABLE [dbo].[Employee]( > > [Id] [int] IDENTITY(1,1) NOT NULL, > > [LastName] [nvarchar](100) NOT NULL, > > [FirstName] [nvarchar](100) NOT NULL, > > [Store_id] [int] NULL, > > CONSTRAINT [PK_Employee] PRIMARY KEY CLUSTERED > > ( > > [Id] ASC > > )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY > > = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] > > ) ON [PRIMARY] > > > GO > > > ALTER TABLE [dbo].[Employee] WITH NOCHECK > > ADD CONSTRAINT [FK_Employee_Store] FOREIGN KEY([Store_id]) > > REFERENCES [dbo].[Store] ([Id]) > > GO > > > ALTER TABLE [dbo].[Employee] CHECK CONSTRAINT [FK_Employee_Store] > > GO > > > The DDL for Store looks like this: > > > CREATE TABLE [dbo].[Store]( > > [Id] [int] IDENTITY(1,1) NOT NULL, > > [Name] [nvarchar](100) NOT NULL, > > CONSTRAINT [PK_Store] PRIMARY KEY CLUSTERED > > ( > > [Id] ASC > > )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY > > = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] > > ) ON [PRIMARY] > > > GO- 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 -~----------~----~----~----~------~----~------~--~---
