اندازهی قلم متن
تخمین مدت زمان مطالعهی مطلب:
یک دقیقه
ایجاد یک Pattern در پروژتون میتونه نظم, سرعت و زیبایی خاصی به کدتون بده. با وجود frameworkهای و Patternهایی مسه MVC و MVVM برنامه نویسان را وادار کنه که همه Actionهای یک پروژه رو به سمت کلاینت ببرن.تو یک فرصت دیگه در مورد فریمورک Knockout حتما تاپیک میزارم.امروز میخوام یک Pattern با استفاده از یک Interface و codefirst model براتون بزارم.
گام اول:ایجاد که class property
Public Class Employee Public Property ID As Integer Public Property Fname As String Public Property Bdate As DateTime End Class
گام دوم:ایجاد بانک با استفاده از CodeFirst
Imports System.Data.Entity Public Class EmployeeDBContext : Inherits DBContext Public Property Employees As DbSet(Of Employee) End Class
گام سوم: ایجاد repository با استفاده از interface
Interface EmployeeRepository ReadOnly Property All As List(Of Employee) Function Find(id As Integer) As Employee Sub InsertOrUpdate(p As Employee) Sub Delete(id As Integer) Sub Save() End Interface
گام چهارم: تعریف کلاس برای implement کردن از iInterface
Public Class EmployeeClass : Implements EmployeeRepository Private DB As New EmployeeDBContext Public ReadOnly Property All As List(Of Employee) Implements EmployeeRepository.All Get Return DB.Employees.ToList() End Get End Property Public Sub Delete(id As Integer) Implements EmployeeRepository.Delete Dim query = DB.Employees.Single(Function(q) q.ID = id) DB.Employees.Remove(query) End Sub Public Function Find(id As Integer) As Employee Implements EmployeeRepository.Find Return DB.Employees.Where(Function(q) q.ID = id) End Function Public Sub InsertOrUpdate(p As Employee) Implements EmployeeRepository.InsertOrUpdate If p.ID = Nothing Then DB.Employees.Add(p) Else DB.Entry(p).State = Data.EntityState.Modified End If End Sub Public Sub Save() Implements EmployeeRepository.Save DB.SaveChanges() End Sub End Class
برای استفاده تو پروژه براحتی میتونید یک instance از classتون ایجاد کنید و ..
Dim cls As New EmployeeClass
Public Sub BindGrid() GridView1.DataSource = cls.All GridView1.DataBind() End Sub
موفق باشید