Сначала вызовите хранимую процедуру из кода LINQ - PullRequest
0 голосов
/ 10 марта 2019

Извините, если эта тема повторяется, но я искал раньше, но все равно у меня нет решения.

Если у меня есть хранимая процедура в базе данных SQL> ex: Хранимая процедура для оператора Select, и я хочу вызвать ее из LINQ - Code First ??

public class MyContext :DbContext

{
    public MyContext()
        : base("name=MyConnection")
    {

    }

    public DbSet<Employee> Employee { get; set; }
    public DbSet<Department> Department{ get; set; }
} 

// Класс Сотрудник

    public class Employee{
           public int ID {get; set;}
           public string Fname {get;set;}
           public string Lname {get;set;}
           public Departmetn DepartmentID {get;set;}
    }

// Класс отдела

    public class Department{
        public int ID {get;set;}
        public string Name { get;set;}
}

// Процедура

Select Fname + ' ' + Lname as 'FullName' from Employee,Department
Where Employee.DepartmentID = Department.ID

Теперь, как мне сначала вызвать эту процедуру из кода LINQ? Я пытался сделать это:

MyContext oContext = new MyContext();
var Employee = oContext.Employee.SqlQuery("ProcedureName").ToList();

Но есть ошибка, что Employee не существует, столбец FullName, также, если я не вернул идентификатор, возникает ошибка

**The data reader is incompatible with the specified 'Employee'. A member of the type, 'EmployeeID', does not have a corresponding column in the data reader with the same name.**

Я не хочу читать все столбцы, просто у меня есть сотрудник Сотрудник и отдел, у меня есть процедура с другим столбцом имени, или если у меня есть сложная процедура, в которой есть оператор выбора из более чем 2 таблиц, как я могу это сделать ??

Спасибо всем, кто может помочь мне в этом ..

...