c# - 在 LINQ to SQL 中执行查询

标签 c# sql linq linq-to-sql linq-to-entities

如何使用 LINQ to SQL 执行查询?查询是这样的。

假设我有这张 table

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 执行该查询?

最佳答案

好久不见了,不就是这样吗?

假设您已将所有表拖到 Linq2Sql 设计器上,只需创建一个 Student 对象,将 StudentLoan 添加到其 StudentLoans 集合,并使用 myContextInstance.Students.InsertOnSubmit(newStudent)Student 添加到 Context.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 文件的设计界面的结果。

关于c# - 在 LINQ to SQL 中执行查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9346073/

相关文章:

c# - 将类解释为文本

c# - 从 GetHostEvidence() 获取空值

c# - 生成数组并仅获取高于平均值的数字

SQL 查询在 MS-Access 中工作,但无法以 vb.net 形式实现

mysql - SELECT COLUMN_NAMES 是其他表中的值 (mysql)

c# - 如何将 Sum() 等 linq 函数与动态变量一起使用

c# - RestSharp "Error getting response stream (ReadAsync): ReceiveFailure Value cannot be null. Parameter name: src"

c# - LINQ Where 表达式扩展

c# - LINQ 左连接可空值

mysql - 如何在 SQL 中获取具有两个对应列的记录?