2012-02-19 165 views
3

如何使用LINQ to SQL執行查詢?一個類似這樣的問題的查詢。在LINQ to SQL中執行查詢

比方說,我有這個表

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

CREATE TABLE dbo.StudentLoans 
(
    LoanID INT IDENTITY(1,1) PRIMARY KEY, 
    StudentID INT FOREIGN KEY REFERENCES dbo.Students(StudentID), 
    Amount BIGINT -- just being funny 
); 

然後我想執行這個查詢。

DECLARE 
    @Name  SYSNAME = N'user962206', 
    @LoanAmount BIGINT = 50000, 
    @StudentID INT; 

INSERT dbo.Students(Name) 
    SELECT @Name; 

SELECT @StudentID = SCOPE_IDENTITY(); 

INSERT dbo.StudentLoans(StudentID, Amount) 
    SELECT @StudentID, @LoanAmount; 

這可能嗎?即使您的行和列已映射?我怎樣才能執行該查詢與LINQ to SQL?

回答

3

這已經有一段時間了,但不是這樣的嗎?

假設您已經拖累所有的表到LINQ2SQL設計師,只需創建一個Student對象,添加StudentLoanStudentLoans收集,並與myContextInstance.Students.InsertOnSubmit(newStudent)添加StudentContext.Students收集和寫出來與調用的變化myContextInstance.SubmitChanges

所以,把他們放在一起:

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(); 
} 

的代碼片段工作,如果你的DataContext是這樣的:

enter image description here

這只是拖動表格結果到dbml文件的設計表面。

+0

我不是LINQ人,但StudentLoans表如何填充StudentID列? – 2012-02-19 03:49:44

+0

@AaronBertrand:Linq2Sql知道FK關係,因此可以管理關係的ID。這部分被有效地抽象出來。 – spender 2012-02-19 04:21:37

+0

聽起來像我可以嘗試打破的樂趣。 :-)它如何做與自引用外鍵的票價? – 2012-02-19 04:27:39

2

如果你的問題,你的意思是 「如何做一個與LINQ to SQL的執行原始SQL查詢」,再看看ExecuteCommandExecuteQuery方法:

所有這些方法都需要一個原始SQL查詢,就像你的一樣,並根據數據庫運行它

如果你的意思是你的問題「如何將這個SQL查詢寫成LINQ查詢」,那麼請澄清你的問題。

+0

我的意思是「我如何用LINQ to SQL執行原始SQL查詢」 – user962206 2012-02-19 05:06:29