Duvida entity framework asp mvc

24/05/2017

0

Boa Pessoal, estou participando dos cursos asp mvc enty e estou com varias duvidas, devido as varias formas que o entity se comporta
Criei um projeto na seguinte forma
1- new projeto mvc, fui no console packege manage e Install-Packege Entity-Framework
2-na sequencia comando Enable-Migrations
3- crie dentro do models 3 class usuario,cliente,funcionario,
segue abaixo descricao com parametros das classes

[Table("Usuario")]
public abstract class Usuario
{
[Key]
public int Id_User { get; set; }

[Required(ErrorMessage = "O nome do usuário é obrigatório", AllowEmptyStrings = false)]
public string Nome { get; set; }

[Required(ErrorMessage = "E-mail deve ser preenchido")]
[RegularExpression(@"\\w+([-+.']\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*", ErrorMessage = "E-mail em formato inválido")]
[Display(Name = "E-mail")]
public string Email { get; set; }

public string Cpf { get; set; }
public string Senha { get; set; }
}
[Table("Cliente")]
public class Cliente : Usuario
{
public string Telefone { get; set; }
[Display(Name = "Endereço")]
public string Endereco { get; set; }
[Display(Name = "Data Nascimento")]
[DisplayFormat(DataFormatString = "mm/dd/yyyy")]
public string DataNasc { get; set; }
public virtual ICollection<Usuario> Usuario { get; set; }
}
[Table("Funcionario")]
public class Funcionario : Usuario
{
[Key]
public int Id_func { get; set; }
public string Cargo { get; set; }

public virtual ICollection<Usuario> Usuario { get; set; }
}

Bom depois das tabelas criadas no console digitei
Add-Migrations Usuario
Update-Database
fui no projeto e de rebuild
Verifiquei no banco AS tabelas no banco foram criadas
Agora vou montar os controllers
add controller Clientes
resulta ok criou as view executei o projeto rodou beleza
vei com as propriedades do usuario e do cliete na tela obedescendo a herança
alualizei a na linha de comando
Update-Dabase

vou criar o controle dos fucnionarios ai nao funciona da erro
olha o controler do funcionario com os erros

public class FuncionariosController : Controller
{
private ApplicationDbContext db = new ApplicationDbContext();

// GET: Funcionarios
public ActionResult Index()
{
return View(db.Usuarios.ToList());
}

// GET: Funcionarios/Details/5
public ActionResult Details(int? id)
{
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
Funcionario funcionario = db.Usuarios.Find(id);
if (funcionario == null)
{
return HttpNotFound();
}
return View(funcionario);
}

// GET: Funcionarios/Create
public ActionResult Create()
{
return View();
}

// POST: Funcionarios/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 ActionResult Create([Bind(Include = "Id_User,Nome,Email,Cpf,Senha,Id_func,Cargo")] Funcionario funcionario)
{
if (ModelState.IsValid)
{
db.Usuarios.Add(funcionario);
db.SaveChanges();
return RedirectToAction("Index");
}

return View(funcionario);
}

// GET: Funcionarios/Edit/5
public ActionResult Edit(int? id)
{
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
Funcionario funcionario = db.Usuarios.Find(id);
if (funcionario == null)
{
return HttpNotFound();
}
return View(funcionario);
}

// POST: Funcionarios/Edit/5
// 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 ActionResult Edit([Bind(Include = "Id_User,Nome,Email,Cpf,Senha,Id_func,Cargo")] Funcionario funcionario)
{
if (ModelState.IsValid)
{
db.Entry(funcionario).State = EntityState.Modified;
db.SaveChanges();
return RedirectToAction("Index");
}
return View(funcionario);
}

// GET: Funcionarios/Delete/5
public ActionResult Delete(int? id)
{
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
Funcionario funcionario = db.Usuarios.Find(id);
if (funcionario == null)
{
return HttpNotFound();
}
return View(funcionario);
}

// POST: Funcionarios/Delete/5
[HttpPost, ActionName("Delete")]
[ValidateAntiForgeryToken]
public ActionResult DeleteConfirmed(int id)
{
Funcionario funcionario = db.Usuarios.Find(id);
db.Usuarios.Remove(funcionario);
db.SaveChanges();
return RedirectToAction("Index");
}

protected override void Dispose(bool disposing)
{
if (disposing)
{
db.Dispose();
}
base.Dispose(disposing);
}
}
}

Pessoal sou novo, me descupem se for um erro bobo ,mas se alguem poder me orientar, pos vejo que o entity e abordado de varias formas, cada um faz de um jeito
Miguel Filho

Miguel Filho

Responder

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar