2012-02-20 50 views
-2

讓我們假設我們有這個表的LINQ到SQL添加方法

CREATE TABLE dbo.Students 
(
    StudentID INT IDENTITY(1,1) PRIMARY KEY, 
    Name varchar(50) 
); 

CREATE TABLE dbo.StudentLoans 
(
    LoanID INT IDENTITY(1,1) PRIMARY KEY, 
    StudentID INT FOREIGN KEY REFERENCES dbo.Students(StudentID), 
    Amount int 
); 

,我們在表單代碼

using(var myContextInstance=new YourContext()) 
{ 
    var student = new Student(){Name = "user962206"}; 
    var studentLoan = new StudentLoan(){Amount = 50000}; 
    student.StudentLoans.Add(studentLoan); 
    myContextInstance.Students.InsertOnSubmit(student); 
    myContextInstance.SubmitChanges(); 
} 

下面的代碼並允許進一步假設,我拖放棄我的表進我的O/R設計師,同時我有一類LINQ to SQL classes

每行代碼在這裏做什麼?特別是

student.StudentLoans.Add(studentLoan); 

.Add(studentLoan)方法具體做什麼?

+0

這是的LINQ to SQL或LINQ到實體?他們是不同的東西。 – cadrell0 2012-02-20 14:01:23

+0

SubmitChanges特定於linq-to-sql只有 – 2012-02-20 14:09:42

回答

2

它會在StudentLoans表中插入一個新條目。這個新條目的StudentId將具有新添加的學生的價值。

編輯

另一種方式

using(var myContextInstance=new YourContext()) 
{ 
    // create a new student instance 
    var student = new Student(){Name = "user962206"}; 
    // inserts this student by calling SubmitChanges; student.StudentID will have new value from database 
    myContextInstance.Students.InsertOnSubmit(student); 
    myContextInstance.SubmitChanges(); 

    // create a new student load object 
    var studentLoan = new StudentLoan(){Amount = 50000}; 
    // assign the StudentID 
    studentLoan.StudentID = student.StudentID; 
    // you can assign the student via the Student property also 
    // or studentLoan.Student = student; 

    // save the new StudentLoan object into the database 
    myContextInstance.StudentLoans.InsertOnSubmit(studentLoan); 
    myContextInstance.SubmitChanges(); 
} 
+0

但爲什麼它有student.StudentLoans.Add(studentLoan)?可以將它用作StudentLoans.Add(studentLoan)嗎?如果您的意思是StudentID Student表中的StudentID或StudentLoans表上的StudentId? – user962206 2012-02-20 14:03:20

+0

您可以使用StudentLoans.Add(studentLoan),但您必須知道StudentID值 – 2012-02-20 14:05:42

+0

學生表中的StudentID – 2012-02-20 14:06:07