MVC#中的内部联接?
我想把两个表PhieuMuonSach和 要查看的CTPHIEUMOUNSACHMVC#中的内部联接?,c#,asp.net-mvc,entity-framework,asp.net-mvc-5,C#,Asp.net Mvc,Entity Framework,Asp.net Mvc 5,我想把两个表PhieuMuonSach和 要查看的CTPHIEUMOUNSACH Phieumounsach型号: [Table("PhieuMuonSach")] public partial class PhieuMuonSach { [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
Phieumounsach型号:
[Table("PhieuMuonSach")]
public partial class PhieuMuonSach
{
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
public PhieuMuonSach()
{
CTPhieuMuonSach = new HashSet<CTPhieuMuonSach>();
}
[Key]
public int Id_PhieuMuon { get; set; }
public int? Id_DocGia { get; set; }
[Column(TypeName = "date")]
public DateTime? NgayMuon { get; set; }
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
public virtual ICollection<CTPhieuMuonSach> CTPhieuMuonSach { get; set; }
public virtual TheDocGia TheDocGia { get; set; }
}
[Table("CTPhieuMuonSach")]
public partial class CTPhieuMuonSach
{
[Key]
[Column(Order = 0)]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public int Id_PhieuMuon { get; set; }
[Key]
[Column(Order = 1)]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public int Id_Sach { get; set; }
[Column(TypeName = "date")]
public DateTime? NgayTra { get; set; }
[StringLength(20)]
public string TrangThai { get; set; }
[StringLength(100)]
public string GhiChu { get; set; }
public virtual PhieuMuonSach PhieuMuonSach { get; set; }
public virtual Sach Sach { get; set; }
}
public class QuanLyMuonTraSach
{
public PhieuMuonSach PhieuMuonSach { get; set; }
public CTPhieuMuonSach CTPhieuMuonSach { get; set; }
//public Sach Sach { get; set; }
//public LoaiSach LoaiSach { get; set; }
}
public ActionResult TestNe(int? id)
{
using (QuanLyThuVienContext Db = new QuanLyThuVienContext())
{
var CTPhieuMuonInnerJoinPhieuMuon = Db.CTPhieuMuonSach
.AsNoTracking()
.Join(Db.PhieuMuonSach, ct => ct.Id_PhieuMuon, p => p.Id_PhieuMuon, (ct, p) => new { ct, p })
.Select(s => new
{
s.p.Id_PhieuMuon,
s.p.Id_DocGia,
s.ct.Id_Sach,
s.p.NgayMuon,
s.ct.NgayTra,
s.ct.TrangThai,
s.ct.GhiChu
}).AsQueryable();
var data = CTPhieuMuonInnerJoinPhieuMuon.ToList();
return View(data);
}
}
@model IEnumerable<CNPMNC_QLThuVien.Models.QuanLyMuonTraSach>
@{
ViewBag.Title = "TestNe";
Layout = "~/Views/Shared/_Layout_PhieuMuonSach.cshtml";
}
<p>
@Html.ActionLink("Create New", "Create")
</p>
<div class="col-sm-offset-1 col-sm-8">
<table class="table">
<tr>
<th>
Id_Phieu
</th>
<th>
Id_DocGia
</th>
<th>
Id_Sach
</th>
<th>
NgayMuon
</th>
<th>
Ngay Tra
</th>
<th>
Trang Thai
</th>
<th>
Ghi Chu
</th>
<th></th>
</tr>
@foreach (var item in Model)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.PhieuMuonSach.Id_PhieuMuon)
</td>
<td>
@Html.DisplayFor(modelItem => item.PhieuMuonSach.Id_DocGia)
</td>
<td>
@Html.DisplayFor(modelItem => item.CTPhieuMuonSach.Id_Sach)
</td>
<td>
@Html.DisplayFor(modelItem => item.PhieuMuonSach.NgayMuon)
</td>
<td>
@Html.DisplayFor(modelItem => item.CTPhieuMuonSach.NgayTra)
</td>
<td>
@Html.DisplayFor(modelItem => item.CTPhieuMuonSach.TrangThai)
</td>
<td>
@Html.DisplayFor(modelItem => item.CTPhieuMuonSach.GhiChu)
</td>
@*<td>
@Html.ActionLink("Edit", "Edit", new { id = item.Id_PhieuMuon, idS = item.Id_Sach }) |
@Html.ActionLink("Details", "Details", new { id = item.Id_PhieuMuon, idS = item.Id_Sach }) |
@Html.ActionLink("Delete", "Delete", new { id = item.Id_PhieuMuon, idS = item.Id_Sach })
</td>*@
</tr>
}
</table>
</
QuanLyMuonTraSach型号:
[Table("PhieuMuonSach")]
public partial class PhieuMuonSach
{
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
public PhieuMuonSach()
{
CTPhieuMuonSach = new HashSet<CTPhieuMuonSach>();
}
[Key]
public int Id_PhieuMuon { get; set; }
public int? Id_DocGia { get; set; }
[Column(TypeName = "date")]
public DateTime? NgayMuon { get; set; }
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
public virtual ICollection<CTPhieuMuonSach> CTPhieuMuonSach { get; set; }
public virtual TheDocGia TheDocGia { get; set; }
}
[Table("CTPhieuMuonSach")]
public partial class CTPhieuMuonSach
{
[Key]
[Column(Order = 0)]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public int Id_PhieuMuon { get; set; }
[Key]
[Column(Order = 1)]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public int Id_Sach { get; set; }
[Column(TypeName = "date")]
public DateTime? NgayTra { get; set; }
[StringLength(20)]
public string TrangThai { get; set; }
[StringLength(100)]
public string GhiChu { get; set; }
public virtual PhieuMuonSach PhieuMuonSach { get; set; }
public virtual Sach Sach { get; set; }
}
public class QuanLyMuonTraSach
{
public PhieuMuonSach PhieuMuonSach { get; set; }
public CTPhieuMuonSach CTPhieuMuonSach { get; set; }
//public Sach Sach { get; set; }
//public LoaiSach LoaiSach { get; set; }
}
public ActionResult TestNe(int? id)
{
using (QuanLyThuVienContext Db = new QuanLyThuVienContext())
{
var CTPhieuMuonInnerJoinPhieuMuon = Db.CTPhieuMuonSach
.AsNoTracking()
.Join(Db.PhieuMuonSach, ct => ct.Id_PhieuMuon, p => p.Id_PhieuMuon, (ct, p) => new { ct, p })
.Select(s => new
{
s.p.Id_PhieuMuon,
s.p.Id_DocGia,
s.ct.Id_Sach,
s.p.NgayMuon,
s.ct.NgayTra,
s.ct.TrangThai,
s.ct.GhiChu
}).AsQueryable();
var data = CTPhieuMuonInnerJoinPhieuMuon.ToList();
return View(data);
}
}
@model IEnumerable<CNPMNC_QLThuVien.Models.QuanLyMuonTraSach>
@{
ViewBag.Title = "TestNe";
Layout = "~/Views/Shared/_Layout_PhieuMuonSach.cshtml";
}
<p>
@Html.ActionLink("Create New", "Create")
</p>
<div class="col-sm-offset-1 col-sm-8">
<table class="table">
<tr>
<th>
Id_Phieu
</th>
<th>
Id_DocGia
</th>
<th>
Id_Sach
</th>
<th>
NgayMuon
</th>
<th>
Ngay Tra
</th>
<th>
Trang Thai
</th>
<th>
Ghi Chu
</th>
<th></th>
</tr>
@foreach (var item in Model)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.PhieuMuonSach.Id_PhieuMuon)
</td>
<td>
@Html.DisplayFor(modelItem => item.PhieuMuonSach.Id_DocGia)
</td>
<td>
@Html.DisplayFor(modelItem => item.CTPhieuMuonSach.Id_Sach)
</td>
<td>
@Html.DisplayFor(modelItem => item.PhieuMuonSach.NgayMuon)
</td>
<td>
@Html.DisplayFor(modelItem => item.CTPhieuMuonSach.NgayTra)
</td>
<td>
@Html.DisplayFor(modelItem => item.CTPhieuMuonSach.TrangThai)
</td>
<td>
@Html.DisplayFor(modelItem => item.CTPhieuMuonSach.GhiChu)
</td>
@*<td>
@Html.ActionLink("Edit", "Edit", new { id = item.Id_PhieuMuon, idS = item.Id_Sach }) |
@Html.ActionLink("Details", "Details", new { id = item.Id_PhieuMuon, idS = item.Id_Sach }) |
@Html.ActionLink("Delete", "Delete", new { id = item.Id_PhieuMuon, idS = item.Id_Sach })
</td>*@
</tr>
}
</table>
</
QuanlymuOntraschController:
[Table("PhieuMuonSach")]
public partial class PhieuMuonSach
{
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
public PhieuMuonSach()
{
CTPhieuMuonSach = new HashSet<CTPhieuMuonSach>();
}
[Key]
public int Id_PhieuMuon { get; set; }
public int? Id_DocGia { get; set; }
[Column(TypeName = "date")]
public DateTime? NgayMuon { get; set; }
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
public virtual ICollection<CTPhieuMuonSach> CTPhieuMuonSach { get; set; }
public virtual TheDocGia TheDocGia { get; set; }
}
[Table("CTPhieuMuonSach")]
public partial class CTPhieuMuonSach
{
[Key]
[Column(Order = 0)]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public int Id_PhieuMuon { get; set; }
[Key]
[Column(Order = 1)]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public int Id_Sach { get; set; }
[Column(TypeName = "date")]
public DateTime? NgayTra { get; set; }
[StringLength(20)]
public string TrangThai { get; set; }
[StringLength(100)]
public string GhiChu { get; set; }
public virtual PhieuMuonSach PhieuMuonSach { get; set; }
public virtual Sach Sach { get; set; }
}
public class QuanLyMuonTraSach
{
public PhieuMuonSach PhieuMuonSach { get; set; }
public CTPhieuMuonSach CTPhieuMuonSach { get; set; }
//public Sach Sach { get; set; }
//public LoaiSach LoaiSach { get; set; }
}
public ActionResult TestNe(int? id)
{
using (QuanLyThuVienContext Db = new QuanLyThuVienContext())
{
var CTPhieuMuonInnerJoinPhieuMuon = Db.CTPhieuMuonSach
.AsNoTracking()
.Join(Db.PhieuMuonSach, ct => ct.Id_PhieuMuon, p => p.Id_PhieuMuon, (ct, p) => new { ct, p })
.Select(s => new
{
s.p.Id_PhieuMuon,
s.p.Id_DocGia,
s.ct.Id_Sach,
s.p.NgayMuon,
s.ct.NgayTra,
s.ct.TrangThai,
s.ct.GhiChu
}).AsQueryable();
var data = CTPhieuMuonInnerJoinPhieuMuon.ToList();
return View(data);
}
}
@model IEnumerable<CNPMNC_QLThuVien.Models.QuanLyMuonTraSach>
@{
ViewBag.Title = "TestNe";
Layout = "~/Views/Shared/_Layout_PhieuMuonSach.cshtml";
}
<p>
@Html.ActionLink("Create New", "Create")
</p>
<div class="col-sm-offset-1 col-sm-8">
<table class="table">
<tr>
<th>
Id_Phieu
</th>
<th>
Id_DocGia
</th>
<th>
Id_Sach
</th>
<th>
NgayMuon
</th>
<th>
Ngay Tra
</th>
<th>
Trang Thai
</th>
<th>
Ghi Chu
</th>
<th></th>
</tr>
@foreach (var item in Model)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.PhieuMuonSach.Id_PhieuMuon)
</td>
<td>
@Html.DisplayFor(modelItem => item.PhieuMuonSach.Id_DocGia)
</td>
<td>
@Html.DisplayFor(modelItem => item.CTPhieuMuonSach.Id_Sach)
</td>
<td>
@Html.DisplayFor(modelItem => item.PhieuMuonSach.NgayMuon)
</td>
<td>
@Html.DisplayFor(modelItem => item.CTPhieuMuonSach.NgayTra)
</td>
<td>
@Html.DisplayFor(modelItem => item.CTPhieuMuonSach.TrangThai)
</td>
<td>
@Html.DisplayFor(modelItem => item.CTPhieuMuonSach.GhiChu)
</td>
@*<td>
@Html.ActionLink("Edit", "Edit", new { id = item.Id_PhieuMuon, idS = item.Id_Sach }) |
@Html.ActionLink("Details", "Details", new { id = item.Id_PhieuMuon, idS = item.Id_Sach }) |
@Html.ActionLink("Delete", "Delete", new { id = item.Id_PhieuMuon, idS = item.Id_Sach })
</td>*@
</tr>
}
</table>
</
我的观点:
[Table("PhieuMuonSach")]
public partial class PhieuMuonSach
{
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors")]
public PhieuMuonSach()
{
CTPhieuMuonSach = new HashSet<CTPhieuMuonSach>();
}
[Key]
public int Id_PhieuMuon { get; set; }
public int? Id_DocGia { get; set; }
[Column(TypeName = "date")]
public DateTime? NgayMuon { get; set; }
[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")]
public virtual ICollection<CTPhieuMuonSach> CTPhieuMuonSach { get; set; }
public virtual TheDocGia TheDocGia { get; set; }
}
[Table("CTPhieuMuonSach")]
public partial class CTPhieuMuonSach
{
[Key]
[Column(Order = 0)]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public int Id_PhieuMuon { get; set; }
[Key]
[Column(Order = 1)]
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public int Id_Sach { get; set; }
[Column(TypeName = "date")]
public DateTime? NgayTra { get; set; }
[StringLength(20)]
public string TrangThai { get; set; }
[StringLength(100)]
public string GhiChu { get; set; }
public virtual PhieuMuonSach PhieuMuonSach { get; set; }
public virtual Sach Sach { get; set; }
}
public class QuanLyMuonTraSach
{
public PhieuMuonSach PhieuMuonSach { get; set; }
public CTPhieuMuonSach CTPhieuMuonSach { get; set; }
//public Sach Sach { get; set; }
//public LoaiSach LoaiSach { get; set; }
}
public ActionResult TestNe(int? id)
{
using (QuanLyThuVienContext Db = new QuanLyThuVienContext())
{
var CTPhieuMuonInnerJoinPhieuMuon = Db.CTPhieuMuonSach
.AsNoTracking()
.Join(Db.PhieuMuonSach, ct => ct.Id_PhieuMuon, p => p.Id_PhieuMuon, (ct, p) => new { ct, p })
.Select(s => new
{
s.p.Id_PhieuMuon,
s.p.Id_DocGia,
s.ct.Id_Sach,
s.p.NgayMuon,
s.ct.NgayTra,
s.ct.TrangThai,
s.ct.GhiChu
}).AsQueryable();
var data = CTPhieuMuonInnerJoinPhieuMuon.ToList();
return View(data);
}
}
@model IEnumerable<CNPMNC_QLThuVien.Models.QuanLyMuonTraSach>
@{
ViewBag.Title = "TestNe";
Layout = "~/Views/Shared/_Layout_PhieuMuonSach.cshtml";
}
<p>
@Html.ActionLink("Create New", "Create")
</p>
<div class="col-sm-offset-1 col-sm-8">
<table class="table">
<tr>
<th>
Id_Phieu
</th>
<th>
Id_DocGia
</th>
<th>
Id_Sach
</th>
<th>
NgayMuon
</th>
<th>
Ngay Tra
</th>
<th>
Trang Thai
</th>
<th>
Ghi Chu
</th>
<th></th>
</tr>
@foreach (var item in Model)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.PhieuMuonSach.Id_PhieuMuon)
</td>
<td>
@Html.DisplayFor(modelItem => item.PhieuMuonSach.Id_DocGia)
</td>
<td>
@Html.DisplayFor(modelItem => item.CTPhieuMuonSach.Id_Sach)
</td>
<td>
@Html.DisplayFor(modelItem => item.PhieuMuonSach.NgayMuon)
</td>
<td>
@Html.DisplayFor(modelItem => item.CTPhieuMuonSach.NgayTra)
</td>
<td>
@Html.DisplayFor(modelItem => item.CTPhieuMuonSach.TrangThai)
</td>
<td>
@Html.DisplayFor(modelItem => item.CTPhieuMuonSach.GhiChu)
</td>
@*<td>
@Html.ActionLink("Edit", "Edit", new { id = item.Id_PhieuMuon, idS = item.Id_Sach }) |
@Html.ActionLink("Details", "Details", new { id = item.Id_PhieuMuon, idS = item.Id_Sach }) |
@Html.ActionLink("Delete", "Delete", new { id = item.Id_PhieuMuon, idS = item.Id_Sach })
</td>*@
</tr>
}
</table>
</
@model IEnumerable
@{
ViewBag.Title=“TestNe”;
Layout=“~/Views/Shared/\u Layout\u PhieuMuonSach.cshtml”;
}
@ActionLink(“新建”、“创建”)
艾德菲尤
迪乌·多吉亚
伊杜萨克
Ngaymouon
Ngay-Tra
庄泰
朱琪琪
@foreach(模型中的var项目)
{
@DisplayFor(modelItem=>item.PhieuMuonSach.Id\u PhieuMuon)
@DisplayFor(modeleItem=>item.PhieuMuonSach.Id\u DocGia)
@DisplayFor(modeleItem=>item.CTPhieuMuonSach.Id\u Sach)
@DisplayFor(modelItem=>item.PhieuMuonSach.NgayMuon)
@DisplayFor(modeleItem=>item.CTPhieuMuonSach.NgayTra)
@DisplayFor(modelItem=>item.CTPhieuMuonSach.TrangThai)
@DisplayFor(modelItem=>item.CTPhieuMuonSach.GhiChu)
@*
@ActionLink(“编辑”,“编辑”,新的{id=item.id\u PhieuMuon,id=item.id\u Sach})|
@ActionLink(“细节”,“细节”,新的{id=item.id\u PhieuMuon,id=item.id\u Sach})|
@ActionLink(“删除”,“删除”,新的{id=item.id\u PhieuMuon,id=item.id\u Sach})
*@
}
因为您的查询生成匿名对象的集合(使用selectnew{…
-您查看expectsIEnumerable
所以您需要向其传递一组QuanLyMuonTraSach
抱歉,我刚刚学习了mvc,所以仍然不理解您的想法!您能给我演示一下您所说的吗?我的英语很差,您知道^要匹配视图中的模型,请选择新的QuanLyMuonTraSach{//在此处设置属性}