1
I have 3 layers , BLL, DAL and the Project. In the DAL layer is the ENTITY (automatically creates the Gets and Sets) and I want to use the Gets and Sets
Because when it arrives in the project layer the value and "0".
Maybe I’m a little confused the question more in the BLL code and the PROJECT has a commented line that helps to understand the problem
DAL layer
namespace DAL
{
using System;
using System.Collections.Generic;
public partial class TabUsuario
{
public int UsuarioId { get; set; }
public string Login { get; set; }
public string Senha { get; set; }
public string Nome { get; set; }
public string Email { get; set; }
public int PerfilId { get; set; }
public bool Status { get; set; }
public System.DateTime DataCriacao { get; set; }
public virtual TabPerfil TabPerfil { get; set; }
}
}
BLL layer is login class
TabUsuario DALUsuario = new TabUsuario();
public void Login(string Usuario, string Password)
{
bool exite = db.TabUsuario.Any(m => m.Login == Usuario && m.Senha == Password && m.Status == true);
if (exite == true)
{
//AQUI O VALOR PASSA NORMAL , O PerfilId FICA COM VALOR 1
DALUsuario.PerfilId = db.TabUsuario.Where(m => m.Login == Usuario).Select(m => m.PerfilId).FirstOrDefault();
}
verificacao = exite;
}
Layer Project I have
TabUsuario DALUsuario = new TabUsuario();
if (Usuarios.Verificacao == true)
{
lblLogado.Visible = true;
lblLogado.Text = "Logado com Sucesso.!";
//AQUI O VALOR NÃO CHEGA , O PerfilId FICA COM VALOR 0
Session.Add("PerfilUsuario", DALUsuario.PerfilId);
}
you are giving a new Dalusuario object when you enter the project, then it will reset everything even. you have to catch this guy by reference.
– DeRamon
@Deramon I discovered this but I don’t know how to do only know how to use the "new", I’m still studying the c# could tell me, or pass me the base I’ll go back ? Thank you.
– Edgar
taking into account that the Dalusuario object becomes a member of your BLL Layer, in your Project layer you need to instantiate an BLL Layer object, and access Dalusuario. Something like Tabusuario usuarioProject = Objbll.Dalusuario; You can see it if it’s public.
– DeRamon
@Thank you Deramon. Now I get it, I went a little further in theory in case someone came in for that mistake .!
– Edgar
The reason is that you cannot use one instance variable to initialize another using a field initializer, because the execution order of the initialisers field is undefined. Base: http://stackoverflow.com/questions/14439231/a-field-initializer-cannot-reference-the-nonstatic-field-method-or-property
– Edgar