[英]Get single column results as a list from a stored procedure using LINQ
这是我的代码,我试图从存储过程中获取Equipment
列表,并且代码方案与其他方案大不相同,因为我无法使其工作。
我已经尝试了多种方法,可以在给定的代码中看到,但没有任何效果
public ActionResult Test()
{
var model = new ViewModels()
{
ModelEquipmentRequestResult = new List<EquipmentRequest_Result>()
{
new EquipmentRequest_Result()
{
EquipmentName = db.EquipmentRequest().ToList().ToString()
// (from a in new db.EquipmentRequest
//select new EquipmentRequest { a.EquipmentName}).ToList();
// ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction<EquipmentRequest_Result>("EquipmentRequest").ToList().TooString()
//db.EquipmentRequest().AsQueryable<EquipmentRequest_Result>(),
//custq.AsEnumerable()
// .Select(o => new EquipmentRequest_Result() {
// EquipmentName = o.EquipmentName
//}).ToList()
}
},
ModeleEquipmentSpViewModel = new EquipmentSpViewModel()
};
ViewBag.project = db.PMSProjects.ToList();
return View(model);
}
这行代码
EquipmentName = db.EquipmentRequest().ToList().ToString()
返回如下内容:
EquipmentName
System.Collections.Generic.List`1[ProjectManagementSystem.EntityDataModel.EquipmentRequest_Result]
这是存储过程查询:
SELECT
e.EquipmentName,
NULL AS Id,
NULL AS EquipmentRequestId,
NULL AS EquipmentId,
NULL AS Planned,
NULL AS Actual,
NULL AS Remarks
FROM
PECEquipment AS e
这是我将其绑定的视图
@model ProjectManagementSystem.ViewModel.ViewModels
@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>TestPartail</title>
</head>
<body>
<div>
@for (int i = 0; i < Model.ModelEquipmentRequestResult.Count; i++)
{
<div>
@Html.LabelFor(m => m.ModelEquipmentRequestResult[i].EquipmentName)
@Html.DisplayFor(m => m.ModelEquipmentRequestResult[i].EquipmentName)
</div>
<div>
@Html.LabelFor(m => m.ModelEquipmentRequestResult[i].Planned)
@Html.EditorFor(m => m.ModelEquipmentRequestResult[i].Planned)
</div>
<div>
@Html.LabelFor(m => m.ModelEquipmentRequestResult[i].Actual)
@Html.EditorFor(m => m.ModelEquipmentRequestResult[i].Actual)
</div>
}
</div>
</body>
</html>
经过澄清:
var model = new ViewModels()
{
ModelEquipmentRequestResult = db.EquipmentRequest().Select(result => new EquipmentRequest_Result
{
EquipmentName = r.EquipmentName,
Planned = r.Planned, //replace with DB column name
Actual = r.Actual //replace with DB column name
}).ToList(),
ModeleEquipmentSpViewModel = new EquipmentSpViewModel()
};
上面的答案做同样的事情。
尝试这个:
List<EquipmentRequest_Result> output = db
.EquipmentRequest()
.Select(x=> new EquipmentRequest_Result { EquipmentName = x.EquipmentName })
.ToList()
编辑:专门针对此问题的方案
var model = new ViewModels()
{
ModelEquipmentRequestResult = db
.EquipmentRequest()
.Select(x=> new EquipmentRequest_Result { EquipmentName = x.EquipmentName })
.ToList(),
ModeleEquipmentSpViewModel = new EquipmentSpViewModel()
};
return View(model);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.