2
I scaffolding generating the controller, and Index is showing an error in
(f => f.Position)
with this mistake:
Cannot Convert lambda Expression to type 'string' because it is not a delegate
the class Employee Inherits People, and has as relationship Position, the class Person has as relationship Type and Personal Below is the Controller
public ActionResult Index()
{
var pessoas = (Funcionario)db.Pessoas.Include(f => f.PessoaEndereco).Include(f => f.Tipo).Include(f => f.Cargo);
return View(pessoas.ToList());
}
Here the classes:
public class Pessoa
{
[Key]
public int PessoaID { get; set; }
[Required(ErrorMessage = "Preencha o nome")]
[DisplayName("Nome")]
[StringLength(150, MinimumLength = 2, ErrorMessage = "O nome deve ter no mínimo 2 e no máximo 150 caracteres.")]
public string Nome { get; set; }
[DisplayName("Telefone")]
public string Telefone { get; set; }
[DisplayName("Celular")]
public string Celular { get; set; }
[DisplayName("WhatsApp")]
public string Whatsapp { get; set; }
[DisplayName("Email")]
[StringLength(150, ErrorMessage = "O E-mail deve ter no máximo 150 caracteres.")]
public string Email { get; set; }
[Required(ErrorMessage = "Preencha o CPF")]
[DisplayName("CPF")]
[StringLength(14, MinimumLength = 14, ErrorMessage = "O CPF deve 14 caracteres.")]
public string CPF { get; set; }
//relacionamentos
public int TipoPessoaID { get; set; }
public virtual TipoPessoa Tipo { get; set; }
public int PessoaEnderecoID { get; set; }
public virtual PessoaEndereco PessoaEndereco { get; set; }
}
public class TipoPessoa
{
[Key]
public int TipoPessoaID { get; set; }
[DisplayName("Tipo: ")]
[Required(ErrorMessage = "Informe o nome do tipo de usuário")]
[Remote("VerificaTipo", "TipoPessoa", ErrorMessage = "Esse TIPO já existe no sistema")]
//[RegularExpression(@"[a-z0-9._%+-]+@[a-z0-9.-]+\.[a-z]{2,4}", ErrorMessage = "Favor informe um e-mail válido")]
public string Descricao { get; set; }
//relacionamentos
public virtual ICollection<Pessoa> Usuarios { get; set; }
}
public class PessoaEndereco
{
[Key]
public int PessoaEnderecoID { get; set; }
//Relacionamentos
public int PessoaID { get; set; }
public virtual Pessoa Pessoa { get; set; }
public int EnderecoID { get; set; }
public virtual Endereco Endereco { get; set; }
}
public class Funcionario:Pessoa
{
[Required(ErrorMessage = "Preencha o RG")]
[DisplayName("RG")]
public string RG { get; set; }
[Required(ErrorMessage = "Preencha o numero da CTPS")]
[DisplayName("CTPS")]
public string CTPS { get; set; }
[DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}")]
[Required(ErrorMessage = "Preencha data de nascimento")]
[DisplayName("Data de Nascimento")]
public DateTime DataNascimento { get; set; }
[DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}")]
[Required(ErrorMessage = "Preencha a data de admissão")]
[DisplayName("Data de Admissão")]
public DateTime DataAdmissao { get; set; }
[DisplayFormat(DataFormatString = "{0:dd/MM/yyyy}")]
[DisplayName("Data de Demissão")]
public DateTime DataDemissao { get; set; }
[DisplayFormat(DataFormatString = "{0:c}")]
[Required(ErrorMessage = "Preencha o Salário.")]
[DisplayName("Salário")]
public decimal Salario { get; set; }
[DisplayName("Confirmar E-mail")]
[Compare("Email", ErrorMessage = "E-mail e confirmação não são identicos.")]
public string ConfirmaEmail { get; set; }
[StringLength(25, MinimumLength = 5, ErrorMessage = "A senha deve ter no mínimo 5 e no máximo 25 caracteres.")]
[Required(ErrorMessage = "Preencha a senha.")]
[DisplayName("Senha")]
public string Senha { get; set; }
[DisplayName("Confirmar Senha")]
[Compare("Senha", ErrorMessage = "Senha e confirmação não são identicos.")]
public string ConfirmaSenha { get; set; }
//Relacionamentos
public int NiveAcessolID { get; set; }
public virtual NivelAcesso NivelAcesso { get; set; }
public int CargoID { get; set; }
public virtual CargoFuncionario Cargo { get; set; }
public virtual ICollection<Pedido> Pedidos { get; set; }
}
Thanks friend, already found the solution to my problem, I will post the answer.
– Fabio Souza
Beauty! For nothing. = D
– Lucas Kauer