View Full Version : سوال: 4 عمل اصلی در دینابیس
alireza_rashvand
شنبه 20 اردیبهشت 1393, 16:00 عصر
با سلام
دوستان نمونه ای دارید که چهار عمل ثبت , حذف , ویرایش و نمایش رو به صورت یک جا و ساده اموزش داده باشه؟ چه تاپیک چه لینک. سپاس.
MVC ,EF code First
alef.divar
شنبه 20 اردیبهشت 1393, 20:22 عصر
سلام
بهتره در رابطه با scaffolding در mvc یه سرچی بزنی(مقالات زیادی به ربان فارسی هست) .
این یه ابزاره که با توجه به کلاس هات برات اعمال CRUD رو به صورت خودکار مینویسه و میتونی با مطالعه کد های تولید شده به وسیله ی اون درک بهتری از نحوه ی عملکرد mvc داشته باشی.
موفق باشی.
alireza_rashvand
یک شنبه 28 اردیبهشت 1393, 12:11 عصر
سپاس.
ایا لینکی مدنظرتان هست؟
jaykob
یک شنبه 28 اردیبهشت 1393, 12:17 عصر
سپاس.
ایا لینکی مدنظرتان هست؟
سلام
MvcScaffolding رو به شکل زیر در NuGet می تونید نصب کنید
PM> Install-Package MvcScaffolding
و این هم یک آموزش برای چیزی که می خواهید
http://www.youtube.com/watch?v=l06JSQDuOwo
پیشنهاد من اینه که قبل از کار با MvcScaffolding خودتون این اعمال رو پیاده سازی کنید خیلی بهتر متوجه می شید
موفق باشید
alireza_rashvand
یک شنبه 28 اردیبهشت 1393, 12:27 عصر
MVC رو از این سایت(dotnettips.info) شروع کردم
بعد EF Code First رو تا انتها مطالعه کردم.
به نظرم باید MVC Scaffolding سایتشون رو هم مطالعه کنم. درسته؟
jaykob
یک شنبه 28 اردیبهشت 1393, 12:55 عصر
MVC رو از این سایت(dotnettips.info) شروع کردم
بعد EF Code First رو تا انتها مطالعه کردم.
به نظرم باید MVC Scaffolding سایتشون رو هم مطالعه کنم. درسته؟
بله اون هم منبع خوبی هست ولی اگه شما هنوز با پیاده سازی چهار عمل اصلی ef code first مشکل دارید بهتره که این موارد رو پروژه وار تجربه کنید و بعد از ابزار MVC Scaffolding استفاده کنید چون تا نفهمید که دستورات دقیقا چی کار انجام می دن تبدیل کد اتوماتیک و سفارشی سازی اونا براتون کمی سخت می شه ...
alireza_rashvand
یک شنبه 28 اردیبهشت 1393, 13:29 عصر
من قبلا وب فورم نوشتم و برای کار با دیتابیس هم از stored procedure خیلی استفاده کردم
الان که سویچ کردم به MVC یکم سردرگمم.
فکر کنم متوجه شدم چگونه چهار عمل اصلی انجام می شه ولی اگر برای درک بهتر چهار عمل اصلی در ef code firs مورد خاصی مدنظرتون هست, لطفا بفرمایید.
یکم درک جستجو ها برام سخت شده مثلا الان دارم قسمت لاگین رو می نویسم کاربر رو ثبت کردم ولی دارم تلاش می کنم نام کاربری و کلمه عبور رو با دیتابیس چک کنم ببینم این فرد هست یا نه, قبلا یک stored procedure می نوشتم اگر خروجیش (تعداد) 1 (صفر نبود) اجازه ورود می دادم ولی الان یکم سردرگم شدم البته این تاپک (http://barnamenevis.org/showthread.php?445406-%DA%A9%D8%AF-%D9%84%D8%A7%DA%AF%DB%8C%D9%86-%D8%A8%D8%A7-MVC)رو هم الان دارم مطالعه می کنم در کل این جستجو ها همه جا هست چه در ثبت چه در حذف چه در ویرایش و نمایش ... به نظرتون مطلبی هست برای مطالعه که این موارد رو بهتر درک کنم .
سپاس از وقتی که ببنده دادید.
helpsos
یک شنبه 28 اردیبهشت 1393, 15:30 عصر
سلام
بهتون پیشنهاد می کنم حالا دوباره کل مطالب مربوط به mvc سایت DotNetTips را بخوانید و در عمل باهاشون درگیر شوید.
برای 4 عمل اصلی هم اول مدل برنامه را درست کن و بعد از Add/Controller بیا و نوع MVC5 Controller With Views,Using Entity FrameWork را انتخاب کن و در کادر بعد هم مدل خود را انتخاب کن و از Data Context نیز دیتاکانتکس خودت رو انتخاب کن و تیک Generate Views هم باشه و تمام.Add کن
حالا اگه یکمی کدها رو در بخش کنترلر ببینی متوجه می شی و کد های ویو ها را هم که ببینی بازم متوجه می شی که چی شدس.
alireza_rashvand
یک شنبه 28 اردیبهشت 1393, 15:58 عصر
سلام
بهتون پیشنهاد می کنم حالا دوباره کل مطالب مربوط به mvc سایت DotNetTips را بخوانید و در عمل باهاشون درگیر شوید.
برای 4 عمل اصلی هم اول مدل برنامه را درست کن و بعد از Add/Controller بیا و نوع MVC5 Controller With Views,Using Entity FrameWork را انتخاب کن و در کادر بعد هم مدل خود را انتخاب کن و از Data Context نیز دیتاکانتکس خودت رو انتخاب کن و تیک Generate Views هم باشه و تمام.Add کن
حالا اگه یکمی کدها رو در بخش کنترلر ببینی متوجه می شی و کد های ویو ها را هم که ببینی بازم متوجه می شی که چی شدس.
دقیقا دارم همین کار رو می کنم یعنی مطلب مربوط به MVC رو از ابتدا دارم شروع می کنم و به صورت عملی پیاده می کنم. برای همین هم سوالات یکی یکی داره سراغم میاد :)
قبلا این مورد رو دیده بودم (لینک (http://www.asp.net/mvc/videos/mvc-2/how-do-i/5-minute-introduction-to-aspnet-mvc))
برای همین به نظرم رسید متوجه شدم چه کار کرده... (قبلتر هم عرض کردم که ثبت کاربر رو انجام دادم)
با توضیح شما و دوستان عزیز متوجه شدم پس بهترین راه همین موردی ایست که شما گفتید که کامل 4 عمل رو نمایش داده...
به نظرم سوالی که برام پیش اومده رو باید در یک تاپیک جدید بپرسم چون شاید به این موضوع مربوط نشده. (جستجو)
سپاس از شما دوستان , شرمنده فرمودید.
helpsos
یک شنبه 28 اردیبهشت 1393, 17:51 عصر
برای جستجو می توان از LINQ استفاده نمود .
jaykob
یک شنبه 28 اردیبهشت 1393, 18:25 عصر
برای صفحه ورود به این شکل می تونید باشه و تغییرات خودتون رو بدید :
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="نام کاربری یا رمز عبور اشتباه وارد شده است";
}
alireza_rashvand
یک شنبه 28 اردیبهشت 1393, 18:29 عصر
برای جستجو می توان از LINQ استفاده نمود .
لطف می کنید لینکی , تاپیک یا کدی نشان بدید تا یاد بگیرم.
سپاس.
helpsos
یک شنبه 28 اردیبهشت 1393, 19:02 عصر
pdf آموزش Linq علی اقدم بد نیست و اگه بازم توی نت بگردین زیاد هست.
http://dl.parsbook.org/server3/uploads/introduction-to-linq.zip
alireza_rashvand
یک شنبه 28 اردیبهشت 1393, 19:02 عصر
بحث جستجو رو اینجا پیگیری می کنم (لینک (http://barnamenevis.org/showthread.php?452743-ID-%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1)) , سپاس.
amir_arsalan_k2
دوشنبه 05 خرداد 1393, 14:18 عصر
با این class میتونین تمام عملیات لازم انجام بدین ....
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:10 صبح
با این class میتونین تمام عملیات لازم انجام بدین ....
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);
}
}
}
با سلام و ممنون از پست خوبتون متد
خیلی خوب و بدرد بخور و کاملی است
چطور میشه متدی را اضافه کرد که تنها یکسری فیلد خاص مثلا از 10 فیلد 4 فیلد ویرایش شود و بقیه همون مقدار قبلی را داشته باشند متد یک جوری باشد برای همه جداول دیگر هم کار کند
با تشکر
Moien Tajik
پنج شنبه 03 تیر 1395, 06:17 صبح
برای انتخاب فیلدهای خاص از Bind استفاده میشه ...
بهترین منبع آموزش mvc که تا به حال دیدم این آموزش هست ، باهاش مرحله به مرحله پیش برید همه چیز رو میفهمید : https://www.pluralsight.com/courses/mvc4-building
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.