C# 在LINQ to SQL中执行查询
如何使用LINQtoSQL执行查询?一个类似这样的问题 假设我有这张桌子C# 在LINQ to SQL中执行查询,c#,sql,linq,linq-to-sql,linq-to-entities,C#,Sql,Linq,Linq To Sql,Linq To Entities,如何使用LINQtoSQL执行查询?一个类似这样的问题 假设我有这张桌子 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
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执行该查询?如果您的问题的意思是“如何使用LINQ to SQL执行原始SQL查询”,请查看
ExecuteCommand
和ExecuteQuery
方法:
- 执行命令-
- 执行程序(重载1)-
- 执行程序(重载2)-
如果您的问题是“如何将此SQL查询编写为LINQ查询”,请澄清您的问题。已经有一段时间了,但不是这样吗 假设您已将所有表拖到Linq2Sql设计器上,只需创建一个
Student
对象,将StudentLoan
添加到其StudentLoans
集合,并将Student
添加到上下文中。Students
集合与myContextInstance.Students.InsertOnSubmit(newStudent)
并通过调用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如下所示,则代码段可以工作:
这是将表拖动到dbml文件的设计图面上的结果。我根本不是LINQ guy,但StudentLoans表如何填充StudentID列?@AaronBertrand:Linq2Sql知道FK关系,因此能够管理关系的ID。这一部分被有效地抽象出来了。听起来像是我想尝试打破的东西。:-)使用自引用外键的情况如何?哈!看来L2S现在已经很老了。实体框架现在已经是第四代了,新开发的速度非常令人兴奋。我从未尝试过使用Linq2BlaBla存储树/层次数据,但我相当确信这将是开发团队考虑的一个用例。我最怀念的是某些连接的表现力。。。有时它们可能会变得非常脏,但与此相反,因为您的数据变成了对象模型,所以它消除了许多最常见的连接方案。@spender您说的newYourContext是什么意思?它像DataContext吗?抱歉,我不熟悉术语,我的意思是“如何使用LINQ to SQL执行原始SQL查询”