【发布时间】:2019-09-18 05:43:15
【问题描述】:
我正在为企业创建一个缺勤管理 Web 应用程序。当员工选择时间段时,我需要列出请求。
我有 3 个关于请求的表格。
列出请求表上的请求的主要表是 Requests,我还有 RequestState 表可以是 Pending、Approved 或 Declined 和 RequestType 表可以是病假、假期等...
表请求:
- 请求 ID
- 主题
- 说明
- 开始日期
- 结束日期
- 类型标识
- 状态标识
- 用户ID
表请求状态
- StateId (ForeignKey TableRequest)
- 名称(待定、已批准……等)
表请求类型
- TypeId (ForeignKey TableRequest)
- 姓名(病假、假期...)
我正在使用 asp.net mvc 和 angularJs。使用 EntityFramework 我正在查询以使用 angularJS 列出。
所以我想在 html 表中列出请求表列表,我将在带有 TypeId 和 StateId 的图像中向您展示。但我想显示 TypeID 和 StateId 的名称而不是数字。
在我的 EntityFramework 查询中我需要做什么?加入?
这是获取所有 PendingRequests 的代码,它将返回一个 json,其中包含表 Requests 上的键。但我想更改或使用查询中的某些内容来获取其他表的名称(RequestState 和 RequestType)而不是 Id。
public JsonResult GetAllPendingRequests()
{
var data = "";
using (CiberbitHolidayMgmt bd = new CiberbitHolidayMgmt())
{
bd.Configuration.LazyLoadingEnabled = false;
var pendingRequests = bd.Requests.Where(a => a.StateId == 1);
data = JsonConvert.SerializeObject(pendingRequests, Formatting.None,
new JsonSerializerSettings()
{
ReferenceLoopHandling = ReferenceLoopHandling.Ignore
});
}
return new JsonResult { Data = data, JsonRequestBehavior = JsonRequestBehavior.AllowGet };
}
关于我有 http 请求的 ng 重复和 JavaScript 的代码
<tbody>
<tr ng-repeat =" a in getPendingRequests">
<td>{{a.TypeId}}</td>
<td>{{a.StartDate}} - {{a.EndDate}}</td>
<td>{{a.Requested}} days</td>
<td>{{a.StateId}}</td>
<td><a href="@Url.Action("Details", "Request")"><i class="fas fa-info-circle "></i></a></td>
</tr>
</tbody>
function getAllPendingRequests() {
$http({
method: 'GET',
url: '/Request/GetAllPendingRequests',
})
.then(function (data) {
data.data = JSON.parse(data.data);
$scope.getAllPendingRequests = data.data;
console.log($scope.getAllPendingRequests);
}, function (data) {
alert("error");
});
}
Html Table with requests list [带有表格的EntityFramework模型][2]
基本上我想在关于状态和类型请求的 html 表上显示名称而不是 Id,我认为我需要一个带有连接的 EntityFramework 查询。谢谢!
更新
这是我查询的图片!
我从不同的表中选择,匹配 id 并创建一个对象!
【问题讨论】:
标签: c# angularjs asp.net-mvc entity-framework linq