我的MVC5应用程序中有2个相应的表,涉及成员会费:
[MemberDues] -- [Id], [Year], [Display], [Amount]
[MemberDuesReceived] -- [Id], [MemberDuesId], [MemberOrgId], [PaidByUserId], [TransactionId], [Paid], [DatePaid], [PaymentMethod], [PayPalPaymentId], [PayPalPayerId], [PayPalPaymentState]
对于MemberDuesManageController
我正在尝试创建一个ViewDuesPaidMembers()
方法,其中我返回已缴纳会费的所有MemberOrgs的列表。现在,我可以通过从我的索引视图上的按钮传递我的模型ID并搜索数据库来获取当前MemberDues.[Id]
:MemberDues memberDues = await db.MemberDues.FindAsync(id);
我不确定的是我如何使用此MemberDues.[Id]
搜索MemberDuesReceived
表并返回MemberDuesReceived.[MemberOrgId]
的所有[Paid]
值列表{ {1}}在我的ActionResult中。
以下是我到目前为止的情况。任何人都可以举例说明如何从其他表中返回相应的MemberOrgs列表吗?
True
修改:
考虑到琼西的建议我现在有:
public async Task<ActionResult> ViewDuesPaidMembers(int id)
{
MemberDues memberDues = await db.MemberDues.FindAsync(id);
return null;
}
我现在要弄清楚的是如何设置我的Button以便它将使用新的控制器方法 public async Task<ActionResult> DuesPaidMembers(int id)
{
MemberDues memberDues = await db.MemberDues.FindAsync(id);
var duesPaidList = db.MemberDuesReceived.Where(mdr => mdr.MemberDuesId == id && mdr.Paid).ToList();
return View(duesPaidList);
}
并重定向以查看DuesPaidMembers()
以显示我的付费MemberOrgs列表:
DuesPaidMember.cshtml
目前,我的按钮将我转到<a href="MembersDuesManage/DuesPaidMembers/@item.Id" class="btn btn-default btn-sm noDecoration"><span class="glyphicon glyphicon-list-alt"></span> View Paid</a>
,并显示以下消息:http://localhost:15160/Admin/MembersDuesManage/DuesPaidMembers/1
答案 0 :(得分:2)
Find
使用主键查找单个记录。您想在外键表上使用Where
:
var duesList = db.MemberDuesReceived
.Where(mdr => mdr.MemberDuesId == id && mdr.Paid)
.ToList();
假设Paid
是bool值。
如果您只想要一个MemberOrgId
列表,您需要添加一个Select语句:
var idList = db.MemberDuesReceived
.Where(mdr => mdr.MemberDuesId == id && mdr.Paid)
.Select(mdr => mdr.MemberOrgId)
.ToList();