C# MVC5使用合并相同的表连接1个表,在LINQ中搜索时没有重复记录
我是新来的LINQ,有一个问题,试图在查询中连接一个表和LINQ以从所有3个表中获取数据,但不幸的是在MVC web上得到了唯一的结果。如果有人能帮忙,我将不胜感激。 下面是我的SQL查询和结果:C# MVC5使用合并相同的表连接1个表,在LINQ中搜索时没有重复记录,c#,linq,model-view-controller,C#,Linq,Model View Controller,我是新来的LINQ,有一个问题,试图在查询中连接一个表和LINQ以从所有3个表中获取数据,但不幸的是在MVC web上得到了唯一的结果。如果有人能帮忙,我将不胜感激。 下面是我的SQL查询和结果: SELECT a.[Admin_Id] ,a.[Admin_Name], a.[Admin_Status],a.[Admin_Remarks] ,a.[Admin_CreateBy] ,a2.[Admin_Name],a.[Admin_UpdateBy],a
SELECT a.[Admin_Id] ,a.[Admin_Name], a.[Admin_Status],a.[Admin_Remarks]
,a.[Admin_CreateBy] ,a2.[Admin_Name],a.[Admin_UpdateBy],a1.Admin_Name
FROM [ABC].[dbo].[Admin]a
join [ABC].[dbo].[Admin]a1 on a.[Admin_UpdateBy] = a1.Admin_Id
join [ABC].[dbo].[Admin]a2 on a.[Admin_CreateBy] = a2.Admin_Id
where a.[Admin_Name] like '%l%' or a.[Admin_Remarks] like '%l%'
or a1.[Admin_Name] like '%l%' or a2.[Admin_Name] like '%l%'
来自SQL的结果:
在本地主机中运行时,我从Web获得唯一的结果,该本地主机的“创建依据”和“更新依据”列为空值或空结果。当按名称搜索时,它也将获得重复记录。例如:“l” 下面是我在MVC Web上的结果: 型号部件中的编码:
public class EntityWM
{
//Get A row DB
public Status status { get; set; }
public Admin AdminModel { get; set; } // a row from db
// get whole list DB
public List<Status> statusList { get; set; }
public List<Admin> AdminModelList { get; set; }
// pager list
public IPagedList<Admin> AdminPageList { get; set; }
}
视图部分中的编码:
<table class="table">
<tr>
<th>
..................................................... other assignment
<th></th>
</tr>
@foreach (var item in Model.AdminPageList)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.Admin_Name)
</td>
<td>
@Html.DisplayFor(modelItem => Model.statusList.FirstOrDefault(x => x.Status_Id == item.Admin_Status).Status_Desc)
</td>
<td>
@Html.DisplayFor(modelItem => item.Admin_Remarks)
</td>
<td>
@Html.DisplayFor(modelItem => Model.AdminModelList.Where(x => x.Admin_Id == item.Admin_CreateBy).FirstOrDefault().Admin_Name)
</td>
<td>
@Html.DisplayFor(modelItem => item.Admin_CreateDate)
</td>
<td>
@Html.DisplayFor(modelItem => Model.AdminModelList.Where(x => x.Admin_Id == item.Admin_UpdateBy).FirstOrDefault().Admin_Name)
</td>
<td>
@Html.DisplayFor(modelItem => item.Admin_UpdateDate)
</td>
<td>
@Html.ActionLink(" ", "Edit", new { id = item.Admin_Id }, new { @class = "glyphicon glyphicon-edit" })
@Html.ActionLink(" ", "Details", new { id = item.Admin_Id }, new { @class = "glyphicon glyphicon-th-list" })
@Html.ActionLink(" ", "Delete", new { id = item.Admin_Id }, new { @class = "glyphicon glyphicon-trash" })
</td>
</tr>
}
..................................................... 其他任务
@foreach(Model.AdminPageList中的变量项)
{
@DisplayFor(modelItem=>item.Admin\u名称)
@DisplayFor(modelItem=>Model.statusList.FirstOrDefault(x=>x.Status\u Id==item.Admin\u Status).Status\u Desc)
@DisplayFor(modelItem=>item.Admin\u备注)
@DisplayFor(modelItem=>Model.AdminModelList.Where(x=>x.Admin\u Id==item.Admin\u CreateBy).FirstOrDefault().Admin\u Name)
@DisplayFor(modelItem=>item.Admin\u CreateDate)
@DisplayFor(modelItem=>Model.AdminModelList.Where(x=>x.Admin\u Id==item.Admin\u UpdateBy).FirstOrDefault().Admin\u Name)
@DisplayFor(modelItem=>item.Admin\u UpdateDate)
@ActionLink(“,”编辑“,新的{id=item.Admin_id},新的{@class=“glyphicon-glyphicon-Edit”})
@ActionLink(“,”详细信息“,新的{id=item.Admin_id},新的{@class=“glyphicon glyphth list”})
@ActionLink(“,”Delete“,new{id=item.Admin_id},new{@class=“glyphicon-glyphicon-trash”})
}
这不会给出正确的结果。还是有更好、更值得推荐的方法?
干杯
<table class="table">
<tr>
<th>
..................................................... other assignment
<th></th>
</tr>
@foreach (var item in Model.AdminPageList)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.Admin_Name)
</td>
<td>
@Html.DisplayFor(modelItem => Model.statusList.FirstOrDefault(x => x.Status_Id == item.Admin_Status).Status_Desc)
</td>
<td>
@Html.DisplayFor(modelItem => item.Admin_Remarks)
</td>
<td>
@Html.DisplayFor(modelItem => Model.AdminModelList.Where(x => x.Admin_Id == item.Admin_CreateBy).FirstOrDefault().Admin_Name)
</td>
<td>
@Html.DisplayFor(modelItem => item.Admin_CreateDate)
</td>
<td>
@Html.DisplayFor(modelItem => Model.AdminModelList.Where(x => x.Admin_Id == item.Admin_UpdateBy).FirstOrDefault().Admin_Name)
</td>
<td>
@Html.DisplayFor(modelItem => item.Admin_UpdateDate)
</td>
<td>
@Html.ActionLink(" ", "Edit", new { id = item.Admin_Id }, new { @class = "glyphicon glyphicon-edit" })
@Html.ActionLink(" ", "Details", new { id = item.Admin_Id }, new { @class = "glyphicon glyphicon-th-list" })
@Html.ActionLink(" ", "Delete", new { id = item.Admin_Id }, new { @class = "glyphicon glyphicon-trash" })
</td>
</tr>
}