سلام
من برای join دو جدول به این ترتیب عمل کردم.
ViewModel
public class AddProfileViewModel
{
public IEnumerable<MyTest.Models.DomainModels.User> Users { get; set; }
public IEnumerable<MyTest.Models.DomainModels.File> Files { get; set; }
}
Controller
public ActionResult ShowProp()
{
var db = new TestDBEntities2();
var model = from p in db.Users
join pi in db.Files on p.Username equals pi.Username
select new
{
p.Name,
p.Mobile,
pi.Images
};
return View(model);
}
حالا برای ویو وقتی میحوام جدولی حاصل از join هر دو تشکیل بدم باید دچار مشکل شدم. چون در model باید حتما مشخص کنم که دقیقا قبلدهای کدوم جدول رو نشون اما من میخوام یک جدول جدید حاصل از کوئری join بسازم.
@model MyTest.ViewModels.Admin.AddProfileViewModel
@foreach (var item in Model.Users)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.Name)
</td>
<td>
@Html.DisplayFor(modelItem => item.Mobile)
</td>
</tr>
}
همونطور که در قسمت foreach میبینید نوشتمModel.Users اما باید یه جوری Model خالی بنویسم تا هر کدوم از فیلدها و جداولش رو در داخل foreach بهش بدم.
یعنی داخل foreach بتونم بگم:
@foreach (var item in Model)
{
<tr>
<td>
@Html.DisplayFor(modelItem => item.User.Name)
</td>
<td>
@Html.DisplayFor(modelItem => item.User.Mobile)
</td>
<td>
@Html.DisplayFor(modelItem => item.File.Image)
</td>
</tr>
}
میشه کمکم کنید. خیلی مهمه.
ممنون