Операции CRUD в MVC 3 без использования контекста БД

#c# #asp.net-mvc

#c# #asp.net-mvc

Вопрос:

Мне нужна помощь.На самом деле я использую ADO net с 4.0 .net framework и создаю собственную базу данных, используя app_data в обозревателе решений с расширением .mdf.

 using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using Crudoperations.Models;
using System.Data.Entity;

namespace Crudoperations.Controllers
{
public class EmployeeController : Controller
{
    //
    // GET: /Employee/

    EmployEntities employContext;


    public ActionResult Index()
    {
        using (var details= new EmployEntities())
        {
            return View(details.employs.ToList());
        }
    }

    //
    // GET: /Employee/Details/5

    public ActionResult Details(int id)
    {

        employContext = new EmployEntities();
        employ _TempEmploy = new employ();
        _TempEmploy.Id = id;


        return View(_TempEmploy);
    }

    //
    // GET: /Employee/Create

    public ActionResult Create()
    {
        return View();
    } 

    //
    // POST: /Employee/Create

    [HttpPost]
    public ActionResult Create(employ objEmploy)
    {
        try
        {
            employContext = new EmployEntities();
            employContext.AddToemploys(objEmploy);
            employContext.SaveChanges();
            return RedirectToAction("Index");
        }
        catch
        {
            return View();
        }
    }

    public ActionResult Edit(int id)
    {
        employContext = new EmployEntities();
        employ _employ = new employ();
        //_employ = ( from Employ
        //            where ID = id) 
        return View();
    }
    [HttpPost]
    public ActionResult Edit(int id, employ objEmploy)
    {
        try
        {

            return RedirectToAction("Index");
        }
        catch
        {
            return View();
        }
    }

    //
    // GET: /Employee/Delete/5

    public ActionResult Delete(int id)

    {
        employ _TempEmploy = new employ();


            return View(_TempEmploy);


    }

    //
    // POST: /Employee/Delete/5

    [HttpPost]
    public ActionResult Delete(int id, employ objEmploy)
    {
        try
        {
            //employContext = new EmployEntities();
            //employ _TempEmploy = new employ();
            //_TempEmploy.Id = id;
            //employ _employ = employContext.Find(_TempEmploy);
            employContext.DeleteObject(objEmploy);
            employContext.SaveChanges();
            return RedirectToAction("Index");

        }
        catch
        {
            return RedirectToAction("Delete", new { id = id, saveChangesError = true });

        }
    }

    public IView detailsModel { get; set; }
}
  

}

На самом деле у меня возникают проблемы с доступом к данным с использованием ID, т.е. в контексте db есть метод «Find (id)», но в контексте объекта такого метода нет.что мне нужно сделать для доступа к данным для редактирования, детализации и удаления данных из базы данных

Комментарии:

1. Можете ли вы добавить несколько примеров кода?

Ответ №1:

вы можете использовать FirstOrDefault() для выборки по идентификатору, он будет извлекать первый соответствующий объект.

 db.Users.FirstOrDefault(x => x.UserId== Id);
  

Надеюсь, это может вам помочь. Хорошего дня.

Комментарии:

1. db также является объектом контекста. вы можете использовать контекст. Пользователи. FirstOrDefault(x => x.userId== Id);

2. можете ли вы поместить фрагмент кода, где вы работаете над ним. Буду рад вам помочь 🙂

3. привет, я использую запрос для получения данных, но он не работает. он показывает ошибку, что таблицы базы данных там нет