我是lambda表达式和实体框架的新手。我的问题是,我有以下表格结构。
tbl_loan => loanID,LoanValue,LoanType
tbl_crin => crID,CRValue,CUSName,FacID
//这里FacID是tbl_loan(loanID)
的外键
tbl_crg => crgID,crgName,CRValue,Amount FacID
//这里是tbl_loan(loanID)
的FacID外键
我需要根据loanID
编写每个表的所有列。如何使用lambda表达式编写查询。
在这种方法中,我需要返回该查询的结果。该查询接受名为loanID的参数。我尝试了简单的代码,但我不知道编写完整的代码(lambda表达式)
public List<tbl_loan> GetCRGDetails(int loanID)
{
var result = new List<tbl_loan>();
var entities = new LAEntities();
try
{
result = entities.tbl_loan.Where(ln => ln.loanID == loanID).ToList();
}
catch (Exception e)
{
Logger.LogWriter("SITS.SB.LA.BL.App", e, "AgeDataLogic", "GetCRGDetails");
}
return result;
}
请帮助我解决此问题。在这里,我重新调谐tbl_loan
。我是否需要创建其他类来重新调整所有数据?还是有其他方法可以做到?
更新:
在我的项目中,details.cshtml
的一部分如下,
@model SITS.SB.LA.DA.tbl_loan
@{
ViewBag.Title = "Details";
}
<h2>Details</h2>
<div>
<h4>Customer Loan Details</h4>
<hr/>
<label for="colFormLabelSm" class="col-sm-2 col-form-label col-form-label-sm" ng-model="">@Html.DisplayFor(model => model.ID)</label>
<label for="colFormLabelSm" class="col-sm-2 col-form-label col-form-label-sm" ng-model="">@Html.DisplayFor(model => model.NETINCOME)</label>
因此,如何显示其他表的列值,例如(crID,CRValue,CUSName)
我的控制器类如下,
public ActionResult Details(int id)
{
var logic = new LoanDetailsDataLogic();
var result = logic.GetCRGDetails(id);
return View(result);
}
答案 0 :(得分:0)
您可以尝试像这样包含实体框架的关键字。
result = entities.tbl_loan.Include("tbl_crin").Where(ln => ln.loanID == loanID).ToList();
或者您可以编写类似的查询
result =(from u in tbl_loan
join t1 in tbl_crin on u.loanID = t1.loanID
Join t2 in tbl_crg on u.loanID = t2.loanID
select new {u,t1,t2});