我想使用表Transaction()中的外键从表Employee中调用FirstName,并在部分视图的dataTable上查看它。这是我的简短数据库图:
这就是我所说的数据表:
索引检视
<div class="card-body">
<div class="table-responsive">
<div id="caTable"></div>
</div>
</div>
js:
$(function () {
FetchCashAdvanceTransaction();
});
function FetchCashAdvanceTransaction() {
var model = $('#caTable');
$.ajax({
url: '/Transaction/GetOpenCATransaction',
contentType: 'application/html ; charset:utf-8',
type: 'GET',
dataType: 'html'
})
.success(function (result) { model.empty().append(result); })
}
控制者
[HttpGet]
public ActionResult GetOpenCATransaction()
{
using (var context = new dbavlincacctgEntities())
{
catransList = context.CATransactions.ToList();
}
return PartialView("_CATransaction", catransList);
}
部分视图
<table class="table table-bordered" id="dataTable" style="width:100%" cellspacing="0">
<thead>
<tr>
<th>ID</th>
<th>CA Number</th>
<th>Requestor</th>
<th>Payee</th>
<th>Total CA Amount</th>
<th>Status</th>
<th>Action</th>
</tr>
</thead>
<tbody>
@if (Model != null)
{
foreach (var item in Model)
{
<tr>
<td>@item.TransID</td>
<td>@item.TransactionNumber</td>
<td>@item.RequestorID</td>
<td>@item.Payee</td>
<td>@item.TotalAmount</td>
<td>@item.Status</td>
<td><button class="btn btn-primary">View</button> <button class="btn btn-danger">Delete</button></td>
</tr>
}
}
</tbody>
</table>
此代码显示整数RequestorID(显然,因为我从Model调用它)。我不知道如何使用FK从其他模型显示名字。如果有帮助,我就使用EF6。谢谢!
最佳答案
您需要更改模型以包含Employee的字段-声明一个ViewModel。
根据实体的设置方式,您可以直接(通过外键关系)或通过获取相关实体并在LINQ中加入Join来间接地从相关实体中查询和提取数据。
查看Loading Related Entities EF,尤其是“显式加载”部分,根据您的实体设置,可以在其中使用Collection
方法或Reference
方法。
最后,如果您的实体类中没有支持,您也可以加入数据。
一旦数据包含Employee信息,则显示它就相对容易了,看起来您已经知道如何做。