نیازی به Join نیست. البته اگر شما در model های اولیه join هارو تعریف کرده باشید. و مشکل دیگه در کد شما اینکه وقتی new مینویسید باید بگید که کدوم model باید باشه. مدل جدید رو باید new کنید و نام فیلد های مورد نظر رو قرار بدید . برای نمونه این رو نگاه کنید :
namespace DaaviRefahBank.ReportsModel
{
public class DadkhastReportModel
{
public string KhahanFirstName { get; set; }
public string KhahanLastName { get; set; }
public string KhahanFatherName { get; set; }
public string KhahanAge { get; set; }
public string KhahanJob { get; set; }
public string KhahanAddress { get; set; }
public string KhandehFirstName { get; set; }
public string KhandehLastName { get; set; }
public string KhandehFatherName { get; set; }
public string KhandehAge { get; set; }
public string KhandehJob { get; set; }
public string KhandehAddress { get; set; }
public string VakilFirstName { get; set; }
public string VakilLastName { get; set; }
public string VakilFatherName { get; set; }
public string VakilAge { get; set; }
public string VakilJob { get; set; }
public string VakilAddress { get; set; }
public string DadkhastSubject { get; set; }
public string DalaeelVaZamaeem { get; set; }
public string DadkhastText { get; set; }
public string DadkhastNumAndDate { get; set; }
public string CrimePlace { get; set; }
}
public partial class CDadkhastReport
{
public static IQueryable<DadkhastReportModel> GetReport(Guid? id)
{
var db = new DaaviDB();
var model = from dadkhast in db.DAV_Dadkhast
where dadkhast.PKDadkhastID == id
select new DadkhastReportModel
{
KhahanFirstName = dadkhast.GNL_Entity.FirstOrDefault().FirstName,
KhahanLastName = dadkhast.GNL_Entity.FirstOrDefault().LastName,
KhahanFatherName = dadkhast.GNL_Entity.FirstOrDefault().FatherName,
KhahanAge = dadkhast.GNL_Entity.FirstOrDefault().BirthDate,
KhahanJob = dadkhast.GNL_Entity.FirstOrDefault().Job,
KhahanAddress = dadkhast.GNL_Entity.FirstOrDefault().Adress,
KhandehFirstName = dadkhast.GNL_Entity1.FirstOrDefault().FirstName,
KhandehLastName = dadkhast.GNL_Entity1.FirstOrDefault().LastName,
KhandehFatherName = dadkhast.GNL_Entity1.FirstOrDefault().FatherName,
KhandehAge = dadkhast.GNL_Entity1.FirstOrDefault().BirthDate,
KhandehJob = dadkhast.GNL_Entity1.FirstOrDefault().Job,
KhandehAddress = dadkhast.GNL_Entity1.FirstOrDefault().Adress,
VakilFirstName = dadkhast.GNL_Entity2.FirstOrDefault().FirstName,
VakilLastName = dadkhast.GNL_Entity2.FirstOrDefault().LastName,
VakilFatherName = dadkhast.GNL_Entity2.FirstOrDefault().FatherName,
VakilAge = dadkhast.GNL_Entity2.FirstOrDefault().BirthDate,
VakilJob = dadkhast.GNL_Entity2.FirstOrDefault().Job,
VakilAddress = dadkhast.GNL_Entity2.FirstOrDefault().Adress,
DadkhastSubject = dadkhast.Khaste + " - بهای خواسته : " + SqlFunctions.StringConvert(dadkhast.KhastePrice) ,
DalaeelVaZamaeem = dadkhast.Dalayel,
DadkhastText = dadkhast.Sharh,
DadkhastNumAndDate = dadkhast.DadkhastNumber + " - " + dadkhast.DadkhastDate,
CrimePlace =dadkhast.CrimePlace
};
return model;
}
}
}
توجه کنید که من ID رو بعنوان یک پارامتر در اختیار query میذارم و نتیجه رو دریافت می کنم . البته من بخاطر اینکه برای report استفاده کردم IQueryable گذاشتم و شما باید از IEnumrable استفاده کنید و مدل رو .toList() بازگشت بدید .