পার্ট 6 - How to seed the database with test data using entity framework
পার্ট 7 - Using stored procedures with entity framework
পার্ট 8 - Using stored procedures with the entity framework code first approach
Entity framework এর code first approach এ যে stored procedure গুলো তৈরি হয় (Insert, Update এবং Delete stored procedure) সেগুলোর কিভাবে পরিবর্তন করা যায় তা নিয়ে discuss করবো এই আর্টিকেলে। এই আর্টিকেলটি পার্ট 8 এর continuation, তাই এই আর্টিকেলটি শুরু কারার আগে পার্ট 8 এ একবার চোখবুলিয়ে আসুন।
public class EmployeeDBContext : DbContext
{
public DbSet<Employee> Employees { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Employee>().MapToStoredProcedures();
base.OnModelCreating(modelBuilder);
}
}
By default, উপরের code, Employee objects গুলোকে Insert, Update এবং Delete করার জন্য নিচের ৩ টি stored procedures তৈরি করে -
Employee_Insert
Employee_Update
Employee_Delete
আপনি যদি auto-generated এই stored procedures গুলোর default name কে override অথবা change করতে চান তাহলে EmployeeDBContext class এর code গুলোকে নিচের code এর মতো পরিবর্তন করতে হবে -
public class EmployeeDBContext : DbContext
{
public DbSet<Employee> Employees { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Employee>()
.MapToStoredProcedures(p => p.Insert(x => x.HasName("InsertEmployee")));
modelBuilder.Entity<Employee>()
.MapToStoredProcedures(p => p.Update(x => x.HasName("UpdateEmployee")));
modelBuilder.Entity<Employee>()
.MapToStoredProcedures(p => p.Delete(x => x.HasName("DeleteEmployee")));
base.OnModelCreating(modelBuilder);
}
}
এখন Sample database টা delete করে দেন এবং WebForm1 কে run করুন। দেখা যাবে generated stored procedures গুলোর নাম আমাদের specify করে দেয়া নাম অনুসারে হয়েছে -
Names of the generated SP |
public class EmployeeDBContext : DbContext
{
public DbSet<Employee> Employees { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Employee>().MapToStoredProcedures
(p => p.Insert(i => i.HasName("InsertEmployee"))
.Update(u => u.HasName("UpdateEmployee"))
.Delete(d => d.HasName("DeleteEmployee"))
);
base.OnModelCreating(modelBuilder);
}
}
নিচের এই code গুলো দিয়ে stored procedures এর default parameter এর name গুলোও পরিবর্তন করা যায়
public class EmployeeDBContext : DbContext
{
public DbSet<Employee> Employees { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Employee>().MapToStoredProcedures
(p => p.Insert(i => i.HasName("InsertEmployee")
.Parameter(n => n.Name, "EmployeeName")
.Parameter(n => n.Gender, "EmployeeGender")
.Parameter(n => n.Salary, "EmployeeSalary"))
.Update(u => u.HasName("UpdateEmployee")
.Parameter(n => n.ID, "EmployeeID")
.Parameter(n => n.Name, "EmployeeName")
.Parameter(n => n.Gender, "EmployeeGender")
.Parameter(n => n.Salary, "EmployeeSalary"))
.Delete(d => d.HasName("DeleteEmployee")
.Parameter(n => n.ID, "EmployeeID"))
);
base.OnModelCreating(modelBuilder);
}
}
এখন আবার Sample database টা drop করে WebForm1 run করুন। দেখা যাবে parameters এর নাম গুলো আমদের specify করা নাম অনুসারে হয়েছে -
Parameters Name of SP |
উপরের explanations আরও ভালভাবে বুঝতে এই video টি একবার দেখে আসুন। ধন্যবাদ।।
No comments:
Post a Comment