Выполнение запросов в LINQ to SQL - PullRequest
3 голосов
/ 19 февраля 2012

Как выполнить запрос, используя 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?

Ответы [ 2 ]

3 голосов
/ 19 февраля 2012

Это было давно, но разве не так?

Предполагая, что вы перетащили все свои таблицы в дизайнер Linq2Sql, просто создайте объект Student, добавьте StudentLoan в его коллекцию StudentLoans и добавьте Student в коллекцию Context.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 выглядит следующим образом:

enter image description here

Это результат простого перетаскивания таблиц на поверхность конструктора файла dbml.

2 голосов
/ 19 февраля 2012

Если под вашим вопросом вы имеете в виду «как выполнить необработанный SQL-запрос с LINQ to SQL», посмотрите на методы ExecuteCommand и ExecuteQuery:

Все эти методы принимают необработанный SQL-запрос, напримерВаш, и запускает его для базы данных

Если вы имели в виду под своим вопросом "как мне написать этот SQL-запрос как запрос LINQ", то, пожалуйста, уточните свой вопрос.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...