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

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

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

Aceitar