linq表联查返回结果类封装,适合多种情况
/// <summary>
/// 表联查显示,扩展字段显示,适用于IQueryable<T> 返回数据,
/// 当主要使用一个表字段,联查的其他表字段较少时,比较适用
/// </summary>
/// <typeparam name="T">泛型</typeparam>
public class ViewData<T>
{
/// <summary>
/// 实体
/// </summary>
public T model {
get; set; }
/// <summary>
/// 扩展字段
/// </summary>
public string C1 {
get; set; }
/// <summary>
/// 扩展字段
/// </summary>
public string C2 {
get; set; }
public string C3 {
get; set; }
public string C4 {
get; set; }
public string C5 {
get; set; }
public string C6 {
get; set; }
public string C7 {
get; set; }
public string C8 {
get; set; }
}
主要显示字段类Down_img_record
/// <summary>
/// 下载记录
/// </summary>
[Serializable]
public partial class Down_img_record
{
/// <summary>
/// guid主键
/// </summary>
[Key]
public string Id {
set; get; }
/// <summary>
/// 下载图片主键
/// </summary>
public string Img_id {
get; set; }
/// <summary>
/// 下载图片时间
/// </summary>
public DateTime Down_time {
get; set; }
/// <summary>
/// 下载人
/// </summary>
public string Down_user_id {
get; set; }
/// <summary>
/// 用途说明
/// </summary>
public string Remark {
get; set; }
/// <summary>
/// 年份
/// </summary>
public int Year {
get; set; }
}
linq联查参考
/// <summary>
/// 联查下载人姓名,部门
/// </summary>
/// <returns></returns>
public IQueryable<ViewData<Down_img_record>> JoinQuery()
{
var query = from q in dbContext.Down_img_record
//联查用户名
join u in dbContext.User on q.Down_user_id equals u.Id into uv
from s in uv.DefaultIfEmpty()
//联查用户部门名称
join d in dbContext.Department on s.Department_id equals d.Id into dv
from h in dv.DefaultIfEmpty()
select new ViewData<Down_img_record>()
{
model = q,
//下载人姓名
C1 = s.Real_name,
//下载部门
C2 = h.Department_name
};
return query;
}