хранимая процедура
USE [College]
GO
ALTER PROCEDURE [dbo].[Usp_Employee]
@Mode TINYINT =NULL
AS
BEGIN
IF @Mode=1
BEGIN
SELECT EmplId,EmplName,EmpRole,Salary from [dbo].[Employee]
ORDER BY EmplName;
END
ELSE IF @Mode=2
BEGIN
SELECT EmplId,EmplName from [dbo].[Employee]
ORDER BY EmplName;
END
END
Сотрудник (класс модели)
namespace MVCQuestion.Models
{
using System;
using System.Collections.Generic;
public partial class Employee
{
public short EmplId { get; set; }
public string EmplName { get; set; }
public string EmpRole { get; set; }
public Nullable<int> Salary { get; set; }
}
}
Просмотр страницы
@model IEnumerable<MVCQuestion.Models.Employee>
@{
ViewBag.Title = "Index";
}
<h2>Employee Name and Role </h2>
<table class="table">
<tr>
<th>
@Html.DisplayNameFor(model => model.EmplName)
</th>
<th>
@Html.DisplayNameFor(model => model.EmpRole)
</th>
<th></th>
</tr>
@foreach (var item in Model) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.EmplName)
</td>
<td>
@Html.DisplayFor(modelItem => item.EmpRole)
</td>
</tr>
}
</table>
Контроллер
using MVCQuestion.Models;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
namespace MVCQuestion.Controllers
{
public class EmployeeController : Controller
{
CollegeEntities objDbContext = new CollegeEntities();
// GET: Employee
public ActionResult Index()
{
var Query = "exec [dbo].Usp_Employee @Mode=2";
var Output = objDbContext.Database.SqlQuery<Employee>(Query).ToList<Employee>();
return View(Output);
}
}
}
Error
Считыватель данных несовместим с указанным «CollegeModel.Employee». Элемент типа «EmpRole» не имеет соответствующего столбца в считывателе данных с тем же именем.
Я использовал одну хранимую процедуру, чтобы получить все столбцы внутри Employee, а также получить только 2 столбца, передав переменную Mode.
В приведенном выше коде я использовал режим 2, чтобы получить два столбца из таблицы Employee, где EmpRole и Salary пропущены.
Хорошо, мой вопрос, есть ли способ получить только 2 параметра из хранимой процедуры и сохранить в новый список классов модели Employee без создания дополнительного класса
то есть любой способ получить данные ino Объект списка класса модели Employee без инициализации всех переменных внутри класса модели Employee.
спасибо ..