نمایش نتایج 1 تا 3 از 3

نام تاپیک: join دو جدول با استفاده از viewmodel و نمایش داخل یک لیست

  1. #1

    join دو جدول با استفاده از viewmodel و نمایش داخل یک لیست

    سلام
    من برای 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>
    }



    میشه کمکم کنید. خیلی مهمه.
    ممنون
    آخرین ویرایش به وسیله leilast : دوشنبه 27 شهریور 1396 در 18:00 عصر

  2. #2

    نقل قول: join دو جدول با استفاده از viewmodel و نمایش داخل یک لیست


  3. #3

    نقل قول: join دو جدول با استفاده از viewmodel و نمایش داخل یک لیست

    خب من مشکلم حل شد. اینجا میذارم تا اگر کسی لازم داشت استفاده کنه. بنظرم کاربرد خوبی داره.
    ViewModel

    public class AddProfileViewModel
    {
    public User Users { get; set; }
    public File Files { get; set; }
    }

    Controller

    [HttpGet]
    public ActionResult ShowProp()
    {
    var db = new TestDBEntities2();


    AddProfileViewModel VM = new AddProfileViewModel();

    var ViewModel = from p in db.Users
    join pd in db.Files on p.Username equals pd.Username
    where pd.Username == p.Username
    orderby p.Name
    select new AddProfileViewModel { Users=p, Files=pd };
    return View(ViewModel);
    }



    View


    @model IEnumerable<MyTest.ViewModels.Admin.AddProfileView Model>

    <table class="table">
    <tr>
    <th>
    نام
    </th>
    <th>
    موبایل
    </th>
    <th>
    عکس
    </th>
    <th></th>
    </tr>

    @foreach (var item in @Model)
    {
    <tr>
    <td>@item.Users.Name</td>
    <td>@item.Users.Mobile</td>
    <td> @Html.ImageFor(modelitem => item.Files.Images, new { width = "80" }, "20170222_182113.jpg", "files", "uploadimages")</td>
    </tr>
    }}}
    </table>


    نتیجه join چند جدول از دیتابیس در یک جدول در view هست.

تاپیک های مشابه

  1. سوال: ثبت اطلاعات در دو جدول با استفاده از یک دکمه
    نوشته شده توسط Juventus FC در بخش مطالب مرتبط با بانکهای اطلاعاتی در VB6
    پاسخ: 3
    آخرین پست: چهارشنبه 28 مرداد 1394, 07:47 صبح
  2. پاسخ: 1
    آخرین پست: جمعه 09 تیر 1391, 17:14 عصر
  3. مشکل با join زدن بین دو دیتابیس با استفاده از linq
    نوشته شده توسط tthenry14plus در بخش دسترسی به داده ها (ADO.Net و LINQ و ...)
    پاسخ: 2
    آخرین پست: سه شنبه 28 تیر 1390, 09:03 صبح
  4. سوال: مشکل با join زدن بین دو دیتابیس با استفاده از linq
    نوشته شده توسط tthenry14plus در بخش C#‎‎
    پاسخ: 0
    آخرین پست: شنبه 25 تیر 1390, 19:28 عصر
  5. ایجاد یک جدول با استفاده از Query
    نوشته شده توسط رضا علوی در بخش Access
    پاسخ: 3
    آخرین پست: پنج شنبه 06 بهمن 1384, 07:37 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •