سلام . وقت بخیر
من قبلا با webform کار میکردم و یک پروژه داشتم که اطلاعات رو از دیتابیس های مختلف میگرفت و به کاربر نشون میداد....
الان دارم همون سایت رو mvc میکنم و دارم با EF DB First کار میکنم . حالا سوالی برام پیش اومده که تا جایی که اطلاعات از دیتابیس سایت خودم بخوام هیچ مشکلی برام پیش نمیاد ولی مثلا میخوام اطلاعاتی که قبلا توی webform از طریق پراسیجر میگیرفتم از یک دیتابیس دیگه رو به کاربر نشون بدم باید چکار کنم توی EF ؟آیا باید برای هر دیتابیسی که باهاش کار میکنم یک ado.net entity data model ایجاد کنم ؟ یا چون فقط یک یا چند پراسیجر کارم رو از هر دیتابیس راه میندازه فقط باید پراسیجرها رو بخونم ؟
البته میتونم بدون EF این کار رو بکنم و برگشتی datatable مقدار رو پاس بدم
SqlConnection cn = new SqlConnection;
SqlCommand cm = new SqlCommand();
SqlDataAdapter da = new SqlDataAdapter();
DataTable dt = new DataTable();
da.SelectCommand = cm;
cm.Connection = cn;
cm.CommandType = CommandType.StoredProcedure;
cm.CommandText = "sp";
cm.Parameters.Clear();
cn.Open();
da.Fill(dt);
cn.Close();
return View(dt);
ور روی Razor :
@using System.Data
@model DataTable
<table>
@foreach (System.Data.DataRow row in Model.Rows)
{
<tr>
<td>@row["ID"]</td>
<td>@row["Title"]</td>
<td>@row["FullText"]</td>
</tr>
}
</table>
اما نمیخوام دیگه برگردم به تکنولوژی قبل و توی نت که سرچ کردم اصلا اینطور روشی رو برای mvc پیشنهاد ندادن و توصیه نکردن
تازه تو نت هم خوندم که با وجود EF دیگه با پراسیجر کار کردن دیگه بی معنا هست ؟ شما قبول دارین اینو ؟ و تو پروژه ای مثل پروژه من شما چه راه حل منطقی رو پیشنهاد میدین ؟
سلام
یه مدل دیگه برای اون یکی دیتابیس ایجاد کنید از از اون مدل استفاده کنید