با سلام
دوستان نمونه ای دارید که چهار عمل ثبت , حذف , ویرایش و نمایش رو به صورت یک جا و ساده اموزش داده باشه؟ چه تاپیک چه لینک. سپاس.
MVC ,EF code First
با سلام
دوستان نمونه ای دارید که چهار عمل ثبت , حذف , ویرایش و نمایش رو به صورت یک جا و ساده اموزش داده باشه؟ چه تاپیک چه لینک. سپاس.
MVC ,EF code First
سلام
بهتره در رابطه با scaffolding در mvc یه سرچی بزنی(مقالات زیادی به ربان فارسی هست) .
این یه ابزاره که با توجه به کلاس هات برات اعمال CRUD رو به صورت خودکار مینویسه و میتونی با مطالعه کد های تولید شده به وسیله ی اون درک بهتری از نحوه ی عملکرد mvc داشته باشی.
موفق باشی.
سپاس.
ایا لینکی مدنظرتان هست؟
آخرین ویرایش به وسیله alireza_rashvand : یک شنبه 28 اردیبهشت 1393 در 12:28 عصر
سلام
MvcScaffolding رو به شکل زیر در NuGet می تونید نصب کنید
PM> Install-Package MvcScaffolding
و این هم یک آموزش برای چیزی که می خواهید
پیشنهاد من اینه که قبل از کار با MvcScaffolding خودتون این اعمال رو پیاده سازی کنید خیلی بهتر متوجه می شیدhttp://www.youtube.com/watch?v=l06JSQDuOwo
موفق باشید
MVC رو از این سایت(dotnettips.info) شروع کردم
بعد EF Code First رو تا انتها مطالعه کردم.
به نظرم باید MVC Scaffolding سایتشون رو هم مطالعه کنم. درسته؟
بله اون هم منبع خوبی هست ولی اگه شما هنوز با پیاده سازی چهار عمل اصلی ef code first مشکل دارید بهتره که این موارد رو پروژه وار تجربه کنید و بعد از ابزار MVC Scaffolding استفاده کنید چون تا نفهمید که دستورات دقیقا چی کار انجام می دن تبدیل کد اتوماتیک و سفارشی سازی اونا براتون کمی سخت می شه ...
من قبلا وب فورم نوشتم و برای کار با دیتابیس هم از stored procedure خیلی استفاده کردم
الان که سویچ کردم به MVC یکم سردرگمم.
فکر کنم متوجه شدم چگونه چهار عمل اصلی انجام می شه ولی اگر برای درک بهتر چهار عمل اصلی در ef code firs مورد خاصی مدنظرتون هست, لطفا بفرمایید.
یکم درک جستجو ها برام سخت شده مثلا الان دارم قسمت لاگین رو می نویسم کاربر رو ثبت کردم ولی دارم تلاش می کنم نام کاربری و کلمه عبور رو با دیتابیس چک کنم ببینم این فرد هست یا نه, قبلا یک stored procedure می نوشتم اگر خروجیش (تعداد) 1 (صفر نبود) اجازه ورود می دادم ولی الان یکم سردرگم شدم البته این تاپک رو هم الان دارم مطالعه می کنم در کل این جستجو ها همه جا هست چه در ثبت چه در حذف چه در ویرایش و نمایش ... به نظرتون مطلبی هست برای مطالعه که این موارد رو بهتر درک کنم .
سپاس از وقتی که ببنده دادید.
سلام
بهتون پیشنهاد می کنم حالا دوباره کل مطالب مربوط به mvc سایت DotNetTips را بخوانید و در عمل باهاشون درگیر شوید.
برای 4 عمل اصلی هم اول مدل برنامه را درست کن و بعد از Add/Controller بیا و نوع MVC5 Controller With Views,Using Entity FrameWork را انتخاب کن و در کادر بعد هم مدل خود را انتخاب کن و از Data Context نیز دیتاکانتکس خودت رو انتخاب کن و تیک Generate Views هم باشه و تمام.Add کن
حالا اگه یکمی کدها رو در بخش کنترلر ببینی متوجه می شی و کد های ویو ها را هم که ببینی بازم متوجه می شی که چی شدس.
دقیقا دارم همین کار رو می کنم یعنی مطلب مربوط به MVC رو از ابتدا دارم شروع می کنم و به صورت عملی پیاده می کنم. برای همین هم سوالات یکی یکی داره سراغم میاد :)
قبلا این مورد رو دیده بودم (لینک)
برای همین به نظرم رسید متوجه شدم چه کار کرده... (قبلتر هم عرض کردم که ثبت کاربر رو انجام دادم)
با توضیح شما و دوستان عزیز متوجه شدم پس بهترین راه همین موردی ایست که شما گفتید که کامل 4 عمل رو نمایش داده...
به نظرم سوالی که برام پیش اومده رو باید در یک تاپیک جدید بپرسم چون شاید به این موضوع مربوط نشده. (جستجو)
سپاس از شما دوستان , شرمنده فرمودید.
برای جستجو می توان از LINQ استفاده نمود .
برای صفحه ورود به این شکل می تونید باشه و تغییرات خودتون رو بدید :
DataClassesDataContext db = new DataClassesDataContext();
var q = (from item in db.tbl_Users
where
item.uname == UserName
&&
item.pass == Password
select item).SingleOrDefault();
if (q != null)
{
Session.Add("AdminId", q.id.ToString());
}
else
{
ViewBag.Message="نام کاربری یا رمز عبور اشتباه وارد شده است";
}
pdf آموزش Linq علی اقدم بد نیست و اگه بازم توی نت بگردین زیاد هست.
http://dl.parsbook.org/server3/uploa...on-to-linq.zip
بحث جستجو رو اینجا پیگیری می کنم (لینک) , سپاس.
با این class میتونین تمام عملیات لازم انجام بدین ....
کد HTML:using System; using System.Collections.Generic; using System.Linq; using System.Web; namespace Adevertisment.Models.Repositories { public class UserRepository : IDisposable { private Adevertisment.Models.DomainModels.Connection_db db = null; public UserRepository() { db = new DomainModels.Connection_db(); } public bool Add(Adevertisment.Models.DomainModels.User entity, bool autoSave = true) { try { db.Users.Add(entity); if (autoSave) return Convert.ToBoolean(db.SaveChanges()); else return false; } catch { return false; } } public bool Update(Adevertisment.Models.DomainModels.User entity, bool autoSave = true) { try { db.Users.Attach(entity); db.Entry(entity).State = System.Data.Entity.EntityState.Modified; if (autoSave) return Convert.ToBoolean(db.SaveChanges()); else return false; } catch { return false; } } public bool Delete(Adevertisment.Models.DomainModels.User entity, bool autoSave = true) { try { db.Entry(entity).State = System.Data.Entity.EntityState.Deleted; if (autoSave) return Convert.ToBoolean(db.SaveChanges()); else return false; } catch { return false; } } public bool Delete(int id, bool autoSave = true) { try { var entity = db.Users.Find(id); db.Entry(entity).State = System.Data.Entity.EntityState.Deleted; if (autoSave) return Convert.ToBoolean(db.SaveChanges()); else return false; } catch { return false; } } public Adevertisment.Models.DomainModels.User Find(int id) { try { return db.Users.Find(id); } catch { return null; } } public IQueryable<Adevertisment.Models.DomainModels.User> Where(System.Linq.Expressions.Expression<Func<Adevertisment.Models.DomainModels.User, bool>> predicate) { try { return db.Users.Where(predicate); } catch { return null; } } public IQueryable<Adevertisment.Models.DomainModels.User> Select() { try { return db.Users.AsQueryable(); } catch { return null; } } public IQueryable<TResult> Select<TResult>(System.Linq.Expressions.Expression<Func<Adevertisment.Models.DomainModels.User, TResult>> selector) { try { return db.Users.Select(selector); } catch { return null; } } public int GetLastIdentity() { try { if (db.Users.Any()) return db.Users.OrderByDescending(p => p.ID).First().ID; else return 0; } catch { return -1; } } public int Save() { try { return db.SaveChanges(); } catch { return -1; } } public void Dispose() { Dispose(true); GC.SuppressFinalize(this); } protected virtual void Dispose(bool disposing) { if (disposing) { if (this.db != null) { this.db.Dispose(); this.db = null; } } } ~UserRepository() { Dispose(false); } } }
آخرین ویرایش به وسیله hossain1037 : چهارشنبه 02 تیر 1395 در 09:21 صبح
برای انتخاب فیلدهای خاص از Bind استفاده میشه ...
بهترین منبع آموزش mvc که تا به حال دیدم این آموزش هست ، باهاش مرحله به مرحله پیش برید همه چیز رو میفهمید : https://www.pluralsight.com/courses/mvc4-building