Some Code may help:

                Data.IMDataContext context = monitor.Context;
                Data.Report report = new Data.Report() { SuiteID = 1,
Rundate = DateTime.Now };
                context.Reports.InsertOnSubmit(report);
                Data.Product p = new Data.Product() { Report = report,
Name = "1" };
                context.Products.InsertOnSubmit(p);
                Data.Component c = new Data.Component() { Product = p,
Name = "1-1" };
                context.Components.InsertOnSubmit(c);
                Data.Component c2 = new Data.Component() { Product =
p, Name = "1-2" };
                context.Components.InsertOnSubmit(c2);
                context.SubmitChanges();
                Console.WriteLine("report.ID=" + report.ID);
                Console.WriteLine("p.ID=" + p.ID);
                Console.WriteLine("c.ID=" + c.ID);
                Console.WriteLine("c2.ID=" + c2.ID);


In the database i following:
* p is inserted twice with correct reportid
* c is inserted three times with the first product-id
* c2 is inserted once but without a product id

When i add an SubmitChanges() after each insert the database
representation is ok, but at the amount of data i have to insert
i would prever to generate the datacontext and push the result
afterwards into the database ...



The examples generates following output:
INSERT INTO  Report  ( Rundate ,  SuiteID ,  ID ) VALUES
(:Rundate, :SuiteID, S_REPORT.NextVal)
-- :Rundate: Input DateTime (Size = 0; Prec = 0; Scale = 0)
[22.04.2010 12:44:06]
-- :SuiteID: Input Int32 (Size = 0; Prec = 0; Scale = 0) [1]
-- Context: Oracle Model: AttributedMetaModel Build: 0.20.0.0

SELECT S_REPORT.CurrVal INTO :ID FROM DUAL
-- Context: Oracle Model: AttributedMetaModel Build: 0.20.0.0

INSERT INTO  Product  ( Name ,  ReportID ,  ID ,  Keywords ,
ModelID ,  QCID ) VALUES (:Name, :ReportID,
S_PRODUCT.NextVal, :Keywords, :ModelID, :QCID)
-- :Name: Input AnsiString (Size = 1; Prec = 0; Scale = 0) [1]
-- :ReportID: Input Int32 (Size = 0; Prec = 0; Scale = 0) [77]
-- :Keywords: Input AnsiString (Size = 0; Prec = 0; Scale = 0) []
-- :ModelID: Input AnsiString (Size = 0; Prec = 0; Scale = 0) []
-- :QCID: Input AnsiString (Size = 0; Prec = 0; Scale = 0) []
-- Context: Oracle Model: AttributedMetaModel Build: 0.20.0.0

SELECT S_PRODUCT.CurrVal INTO :ID FROM DUAL
-- Context: Oracle Model: AttributedMetaModel Build: 0.20.0.0

INSERT INTO  Component  ( Name ,  ID ,  ProductID ,  ModelID ,  QCID )
VALUES (:Name, S_COMPONENT.NextVal, :ProductID, :ModelID, :QCID)
-- :Name: Input AnsiString (Size = 3; Prec = 0; Scale = 0) [1-1]
-- :ProductID: Input Int32 (Size = 0; Prec = 0; Scale = 0) [4054]
-- :ModelID: Input AnsiString (Size = 0; Prec = 0; Scale = 0) []
-- :QCID: Input AnsiString (Size = 0; Prec = 0; Scale = 0) []
-- Context: Oracle Model: AttributedMetaModel Build: 0.20.0.0

SELECT S_COMPONENT.CurrVal INTO :ID FROM DUAL
-- Context: Oracle Model: AttributedMetaModel Build: 0.20.0.0

INSERT INTO  Product  ( Name ,  ReportID ,  ID ,  Keywords ,
ModelID ,  QCID ) VALUES
(:Name, :ReportID, :ID, :Keywords, :ModelID, :QCID)
-- :Name: Input AnsiString (Size = 1; Prec = 0; Scale = 0) [1]
-- :ReportID: Input Int32 (Size = 0; Prec = 0; Scale = 0) [77]
-- :ID: Input Int32 (Size = 0; Prec = 0; Scale = 0) [4054]
-- :Keywords: Input AnsiString (Size = 0; Prec = 0; Scale = 0) []
-- :ModelID: Input AnsiString (Size = 0; Prec = 0; Scale = 0) []
-- :QCID: Input AnsiString (Size = 0; Prec = 0; Scale = 0) []
-- Context: Oracle Model: AttributedMetaModel Build: 0.20.0.0

INSERT INTO  Component  ( Name ,  ID ,  ProductID ,  ModelID ,  QCID )
VALUES (:Name, :ID, :ProductID, :ModelID, :QCID)
-- :Name: Input AnsiString (Size = 3; Prec = 0; Scale = 0) [1-1]
-- :ID: Input Int32 (Size = 0; Prec = 0; Scale = 0) [25157]
-- :ProductID: Input Int32 (Size = 0; Prec = 0; Scale = 0) [4054]
-- :ModelID: Input AnsiString (Size = 0; Prec = 0; Scale = 0) []
-- :QCID: Input AnsiString (Size = 0; Prec = 0; Scale = 0) []
-- Context: Oracle Model: AttributedMetaModel Build: 0.20.0.0

INSERT INTO  Component  ( Name ,  ID ,  ProductID ,  ModelID ,  QCID )
VALUES (:Name, :ID, :ProductID, :ModelID, :QCID)
-- :Name: Input AnsiString (Size = 3; Prec = 0; Scale = 0) [1-1]
-- :ID: Input Int32 (Size = 0; Prec = 0; Scale = 0) [25157]
-- :ProductID: Input Int32 (Size = 0; Prec = 0; Scale = 0) [4054]
-- :ModelID: Input AnsiString (Size = 0; Prec = 0; Scale = 0) []
-- :QCID: Input AnsiString (Size = 0; Prec = 0; Scale = 0) []
-- Context: Oracle Model: AttributedMetaModel Build: 0.20.0.0

INSERT INTO  Component  ( Name ,  ID ,  ProductID ,  ModelID ,  QCID )
VALUES (:Name, S_COMPONENT.NextVal, :ProductID, :ModelID, :QCID)
-- :Name: Input AnsiString (Size = 3; Prec = 0; Scale = 0) [1-2]
-- :ProductID: Input Int32 (Size = 0; Prec = 0; Scale = 0) [0]
-- :ModelID: Input AnsiString (Size = 0; Prec = 0; Scale = 0) []
-- :QCID: Input AnsiString (Size = 0; Prec = 0; Scale = 0) []
-- Context: Oracle Model: AttributedMetaModel Build: 0.20.0.0

SELECT S_COMPONENT.CurrVal INTO :ID FROM DUAL
-- Context: Oracle Model: AttributedMetaModel Build: 0.20.0.0

report.ID=77
p.ID=4054
c.ID=25157
c2.ID=25161

-- 
You received this message because you are subscribed to the Google Groups 
"DbLinq" 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/dblinq?hl=en.

Reply via email to