Извините, если эта тема повторяется, но я искал раньше, но все равно у меня нет решения.
Если у меня есть хранимая процедура в базе данных 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 таблиц, как я могу это сделать ??
Спасибо всем, кто может помочь мне в этом ..