Hi,
i got it to work.
A big thanks all
At begin u have :
new SchemaExport(cn).Create(true, false);
Changing to
new SchemaExport(cn).Create(true, true);
does the trick
Now i have:
var configuration = new NHibernate.Cfg.Configuration();
configuration.Configure();
var buildConfiguration =
ConfigurationBuilder.InternalCreateConfiguration(configuration);
buildConfiguration.ExposeConfiguration(cn => {
new
SchemaExport(cn).Create(true, true);
});
But, can you explain me why the hell the problem is rasing just here
with this Mapping.
I have already about 10 Entities without any problem
Once more
Thanks
Peter
On 25 Apr., 14:32, Peter Forstmeier <[email protected]>
wrote:
> Ok,
> i will try this snippet and be back later
>
> Thanks
> Peter
>
> On 25 Apr., 09:55, Maximilian Raditya <[email protected]> wrote:
>
>
>
> > Hmm... I'm not sure I understand correctly what you're doing there, but
> > basically you need to do it in the follower order:
> > - create a new Employee
> > - create a new Address
> > - create a new EmployeeAddress and reference both the Employee and Address
> > - add the EmployeeAddress to Employee.Addresses collection
> > - save the Address first
> > - and then save the Employee
>
> > Here's how it would be implemented:
>
> > using (var session = sessionFactory.OpenSession())
> > {
> > using (var tx = session.BeginTransaction())
> > {
> > var employee = new Employee
> > {
> > FullName = "Alice"
> > };
> > var address = new Address
> > {
> > AddressLine = "1st Wonderland
> > St."
> > };
> > var employeeOfficeAddress = new EmployeeAddress
> > {
> > Employee =
> > employee,
> > Address =
> > address,
> > AddressType =
> > AddressType.Office
> > };
> > employee.Addresses.Add(employeeOfficeAddress);
>
> > session.SaveOrUpdate(address);
> > session.SaveOrUpdate(employee);
>
> > tx.Commit();
> > }
> > }
>
> > On Thu, Apr 25, 2013 at 1:33 PM, Peter Forstmeier <
>
> > [email protected]> wrote:
> > > Hi,
> > > i did the test as follows:
> > > [Test]
> > > public void EmployeeMapping()
> > > {
> > > var factory =
> > > MySQLiteSessionFactory.CreateSessionFactory();
> > > var employee = new
> > > ProjectTracker.Domain.Employees.Employee() {
> > > CreatedBy ="me",
> > > CreatedAt = DateTime.Today,
> > > EmployeeId = "10"
> > > };
>
> > > var address1 = new EmployeeAddress();
> > > address1.CreatedBy ="me";
> > > address1.CreatedAt = DateTime.Today;
> > > address1.Address = new Address() {
> > > ZipCode = "88161"
> > > };
> > > address1.Employee = employee;
>
> > > var addressList = new
> > > System.Collections.Generic.List<EmployeeAddress>();
>
> > > addressList.Add(address1);
> > > // employee.Addresses = addressList;
> > > new
>
> > > PersistenceSpecification<ProjectTracker.Domain.Employees.Employee>(factory.OpenSession())
>
> > > /*
> > > .CheckProperty(c => c.CreatedAt,
> > > DateTime.Today)
> > > .CheckProperty(c => c.UpdatedAt,
> > > DateTime.Today)
> > > .CheckProperty(c => c.CreatedBy,
> > > WindowsIdentity.GetCurrent().Name)
> > > .CheckProperty(c => c.EmployeeId, "10")
> > > .CheckProperty(c => c.HoursPerWeek,
> > > Convert.ToDouble(40.5))
> > > .CheckProperty(c => c.HireDate,
> > > DateTime.Today)
> > > */
> > > .CheckProperty(c => c.CreatedAt,
> > > employee.CreatedAt)
> > > .CheckProperty(c => c.UpdatedAt,
> > > DateTime.Today)
> > > .CheckProperty(c => c.CreatedBy,
> > > employee.CreatedBy)
> > > .CheckProperty(c => c.EmployeeId,
> > > employee.EmployeeId)
> > > .CheckProperty(c => c.HoursPerWeek,
> > > Convert.ToDouble(40.5))
> > > .CheckProperty(c => c.HireDate,
> > > DateTime.Today)
> > > .CheckList(c =>
> > > c.Addresses,employee.Addresses)
> > > .VerifyTheMappings();
> > > }
> > > NHibernate: INSERT INTO Employees (Version, CreatedAt, CreatedBy,
> > > UpdatedAt, UpdatedBy, EmployeeId, Firstname, Lastname, HoursPerWeek,
> > > BirthDate, HireDate, SickDays, VacationDays, Salutation_id, Id) VALUES
> > > (@p0, @p1, @p2, @p3, @p4, @p5, @p6, @p7, @p8, @p9, @p10, @p11, @p12,
> > > @p13, @p14);@p0 = 1 [Type: Int32 (0)], @p1 = 25.04.2013 08:31:00
> > > [Type: DateTime (0)], @p2 = 'FORSTMEIER\Peter Forstmeier' [Type:
> > > String (0)], @p3 = NULL [Type: DateTime (0)], @p4 = NULL [Type: String
> > > (0)], @p5 = '10' [Type: String (0)], @p6 = NULL [Type: String (0)],
> > > @p7 = NULL [Type: String (0)], @p8 = 0 [Type: Double (0)], @p9 = NULL
> > > [Type: DateTime (0)], @p10 = NULL [Type: DateTime (0)], @p11 = 0
> > > [Type: Int32 (0)], @p12 = 0 [Type: Int32 (0)], @p13 = NULL [Type:
> > > Int32 (0)], @p14 = e05d2d11-d224-4f40-8885-a1ab008c5aae [Type: Guid
> > > (0)]
>
> > > NHibernate: INSERT INTO InheritedAddresses (ZipCode, Town,
> > > AddressLine1, Country, Id) VALUES (@p0, @p1, @p2, @p3, @p4);@p0 =
> > > '88161' [Type: String (0)], @p1 = NULL [Type: String (0)], @p2 = NULL
> > > [Type: String (0)], @p3 = NULL [Type: String (0)], @p4 =
> > > 392b2313-115b-49d0-aeb1-a1ab008c5ab2 [Type: Guid (0)]
>
> > > NHibernate: INSERT INTO EmployeeAddresses (Version, CreatedAt,
> > > CreatedBy, UpdatedAt, UpdatedBy, AddressType, EmployeeId, AddressId,
> > > Id) VALUES (@p0, @p1, @p2, @p3, @p4, @p5, @p6, @p7, @p8);@p0 = 1
> > > [Type: Int32 (0)], @p1 = 25.04.2013 00:00:00 [Type: DateTime (0)], @p2
> > > = 'me' [Type: String (0)], @p3 = 25.04.2013 08:31:00 [Type: DateTime
> > > (0)], @p4 = 'FORSTMEIER\Peter Forstmeier' [Type: String (0)], @p5 =
> > > 'Home' [Type: String (0)], @p6 = e05d2d11-d224-4f40-8885-a1ab008c5aae
> > > [Type: Guid (0)], @p7 = 392b2313-115b-49d0-aeb1-a1ab008c5ab2 [Type:
> > > Guid (0)], @p8 = 0832ed14-5d69-4521-8e8d-a1ab008c5aa9 [Type: Guid (0)]
>
> > > ) Test Error :
> > > ProjectTracker.Test.Mappings.EmployeeMappingsFixture.EmployeeMapping
> > > NHibernate.Exceptions.GenericADOException : could not insert:
> > > [ProjectTracker.Domain.Employees.EmployeeAddress#0832ed14-5d69-4521-8e8d-
> > > a1ab008c5aa9][SQL: INSERT INTO EmployeeAddresses (Version, CreatedAt,
> > > CreatedBy, UpdatedAt, UpdatedBy, AddressType, EmployeeId, AddressId,
> > > Id) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)]
> > > ----> System.Data.SQLite.SQLiteException : SQLite error
> > > no such table: EmployeeAddresses
>
> > > I try the commented part as well
> > > Peter
>
> > > --
> > > You received this message because you are subscribed to the Google Groups
> > > "nhusers" group.
> > > To unsubscribe from this group and stop receiving emails from it, send an
> > > email to [email protected].
> > > To post to this group, send email to [email protected].
> > > Visit this group athttp://groups.google.com/group/nhusers?hl=en-US.
> > > For more options, visithttps://groups.google.com/groups/opt_out.
>
> > --
> > Regards,
>
> > Maximilian Haru Raditya
--
You received this message because you are subscribed to the Google Groups
"nhusers" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/nhusers?hl=en-US.
For more options, visit https://groups.google.com/groups/opt_out.