У меня есть приложение, разработанное в ASP. NET Ядро с EF Core - первый подход кода. Я использовал только одну таблицу, описанную ниже:
**Employee**
-ID_Emp -pk
-Name
-Department
-Function
-Adress
Ниже вы можете найти файлы, которые используются в приложении. Employee.cs из папки Models:
public class Angajat
{
[Key]
public int AngajatId { get; set; }
[Column(TypeName ="nvarchar(250)")]
[Required(ErrorMessage ="Please fill this field.")]
[DisplayName("Nume")]
public string Nume { get; set; }
[Column(TypeName = "varchar(10)")]
[Required(ErrorMessage = "Please fill this field.")]
[DisplayName("Departament")]
public string Departament { get; set; }
[Column(TypeName = "varchar(100)")]
[Required(ErrorMessage = "Please fill this field.")]
public string Functia { get; set; }
[Column(TypeName = "varchar(100)")]
[Required(ErrorMessage = "Please fill this field.")]
[DisplayName("Adresa")]
public string Adresa { get; set; }
}
EmployeeContext.cs из папки Models:
public class AngajatContext:DbContext
{
public AngajatContext(DbContextOptions<AngajatContext> options):base(options)
{
}
public DbSet<Angajat> Angajati { get; set; }
}
EmployeeController.cs из папки Controllers:
public class AngajatController : Controller
{
private readonly AngajatContext _context;
public AngajatController(AngajatContext context)
{
_context = context;
}
// GET: Angajat
public async Task<IActionResult> Index()
{
return View(await _context.Angajati.ToListAsync());
}
// GET: Angajat/Create
public IActionResult AddOrEdit(int id = 0)
{
if (id == 0)
return View(new Angajat());
else
return View(_context.Angajati.Find(id));
}
// POST: Angajat/Create
// To protect from overposting attacks, please enable the specific properties you want to bind to, for
// more details see http://go.microsoft.com/fwlink/?LinkId=317598.
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> AddOrEdit([Bind("AngajatId,Nume,Departament,Functia,Adresa")] Angajat angajat)
{
if (ModelState.IsValid)
{
if (angajat.AngajatId == 0)
_context.Add(angajat);
else
_context.Update(angajat);
await _context.SaveChangesAsync();
return RedirectToAction(nameof(Index));
}
return View(angajat);
}
// GET: Angajat/Delete/5
public async Task<IActionResult> Delete(int? id)
{
var angajat =await _context.Angajati.FindAsync(id);
_context.Angajati.Remove(angajat);
await _context.SaveChangesAsync();
return RedirectToAction(nameof(Index));
}
}
Следующим шагом будет расширение приложения до 3 таблиц:
**Company**
-ID_Comp -pk
-Name
-ID_Emp (collection) -fk
**Employee**
-ID_Emp -pk
-Name
-Functia
-Adresa
-ID_Comp -fk
-ID_Dept -fk
**Department**
-ID_Dept -pk
-Name
-ID_Emp (collection) -fk
После этого у меня есть задача изменить выбор, операции вставки и обновления из EF Core в ADO. NET с использованием хранимых процедур.
Итак, у меня есть несколько вопросов по этому поводу.
Это мой план, пожалуйста, дайте мне знать, что вы Подумайте:
Я хочу создать все 3 таблицы, используя доменные классы (сначала подход кода). Будет ли приложение работать, если я создам таблицы с использованием классов домена, а затем использую ADO. NET и хранимые процедуры для операций выбора, вставки и обновления?
Создание хранимых процедур для выбора , вставьте и обновите (задача говорит, что удаление должно работать с EF). Как создать хранимую процедуру для вставки и обновления в нескольких таблицах?
Создать контроллер.
Кроме того, вы знаете, где можно Я нахожу исходный код простого приложения CRUD в ASP. NET Ядро с ADO. NET хранимыми процедурами в нескольких таблицах ?
Если вам нужно больше кода или другой информация, пожалуйста, дайте мне знать.
Спасибо.