PDA

View Full Version : فراخوانی پایگاه داده در صفحات View در پروژه .Net Core 2



spyknight2004
پنج شنبه 12 مهر 1397, 18:37 عصر
سلام
من میخوام در صفحات view پروژه به دیتابیس دسترسی داشته باشم و مثلا مقادیر یکی از جداول DB رو در بخشی از view صفحه به صورت یک جدول نمایش بدم. مشکل فعلی من در ساخت یک نمونه شی از پایگاه داده هست که متاسفانه امکانش نیست. قبلا در پروژه های MVC ساده به کمک Razor یک شی از DB می ساختم و با استفاده از یک حلقه foreach کل مقادیر نمایش داده می شد. اما الان قادر به چنین کاری نیستم. در واقع DB Context توی صفحات view انگار قابل دسترسی نیستند.
این نمونه ی کدی هست که من در یکی از صفحات View در یک پروژه MVC ساده دارم ولی معادلش رو در .Net Core 2 نمی دونم به چه صورت باید پیاده سازی کنم. ممنون میشم منو راهنمایی کنید.



ProjectName.Models.ProjectNameEntities db = new ProjectName.Models.ProjectNameEntities();
var CustomerTableObject= db.Customer.ToList();
<tbody>
@foreach (var item in CustomerTableObject)
{
<tr>
<td ></td>
</tr>
}
</tbody>

hakim22
پنج شنبه 12 مهر 1397, 19:03 عصر
در دات نت Core باید از Inject استفاده کنید.


@inject MyDbContext db


البته این روش کاملا غیر استاندارده. و شما نفس MVC رو بهم میزنید. کد دیتابیس باید درون کنترلر باشه.

spyknight2004
پنج شنبه 12 مهر 1397, 19:12 عصر
میشه کمی دقیق تر توضیح بدید؟ الان شی جدید من اسمش MyDbContext هست؟ الان با این روش می تونم بخش از دیتا بیس رو هم فراخوانی کنم؟ مثلا چنین کدی رو میشه نوشت؟



var NewObject = db.FCustomer.Where(a => a.id > 2).ToList();

hakim22
جمعه 13 مهر 1397, 11:40 صبح
در دات نت Core یک سیستم تزریق وابستگی به صورت خودکار روی پروژه سوار میشه. برای نمونه سازی از کلاس دیتابیس باید پارامترهای زیادی رو دستی وارد کنید. (مثلا آدرس دیتابیس و اینکه قراره از چه دیتابیسی استفاده کنید) اما سیستم تزریق وابستگی اینکار رو ساده میکنه.

درون ویو می توانید با دستور @inject تزریق وابستگی رو صدا بزنید. MyDbContext اسم کلاس مرجع و db نمونه ی جدید آن است.