consulta com tabelas associativas - Entity Framework
Boa tarde pessoal,
Estou iniciando no desenvolvimento com o entity e cair em uma situação com uma consulta no qual não
estou sabendo como trazer os dados. Estou desenvolvendo um menu dinâmico, no qual trara os itens a
depender do perfil do usuario. Eu possuo 5 tabelas: usuario, usuarioPerfil(Tabela associativa),
perfil, perfilFuncionalidade(Tabela associativa) e funcionalidade.
Eu preciso trazer as funcionalidade de um determinado usuario com determinado perfil.
Alguem teria alguma ideia de como posso fazer isso? Já tentei de varias maneiras e não consigo.
Estou iniciando no desenvolvimento com o entity e cair em uma situação com uma consulta no qual não
estou sabendo como trazer os dados. Estou desenvolvendo um menu dinâmico, no qual trara os itens a
depender do perfil do usuario. Eu possuo 5 tabelas: usuario, usuarioPerfil(Tabela associativa),
perfil, perfilFuncionalidade(Tabela associativa) e funcionalidade.
Eu preciso trazer as funcionalidade de um determinado usuario com determinado perfil.
Alguem teria alguma ideia de como posso fazer isso? Já tentei de varias maneiras e não consigo.
Junior_jaco
Curtidas 0
Respostas
Pjava
21/08/2013
Cara, não consegui entender o que você não está conseguindo fazer com a associativa. É inserção, pesquisa, deleção, qual é realmente sus dúvida. Poderia explicar com mais detalhes?
GOSTEI 0
Junior_jaco
21/08/2013
Cara estou realizando uma consulta, que me trara dados da tabela funcionalidade, porém, terá os relacionamentos dessas tabelas.
Explicando melhor, eu passarei um usuario e o menu será montado atravez do perfil deste usuario.
Explicando melhor, eu passarei um usuario e o menu será montado atravez do perfil deste usuario.
GOSTEI 0
Joel Rodrigues
21/08/2013
Teria como postar um print do diagrama?
Se der, coloque a imagem em um servidor de compartilhamento e cole o link aqui.
Se der, coloque a imagem em um servidor de compartilhamento e cole o link aqui.
GOSTEI 0
Junior_jaco
21/08/2013
Teria como postar um print do diagrama?
Se der, coloque a imagem em um servidor de compartilhamento e cole o link aqui.
Se der, coloque a imagem em um servidor de compartilhamento e cole o link aqui.
Segue o link com o diagrama:
http://img191.imageshack.us/img191/9855/txod.jpg
GOSTEI 0
Matheus Caldas
21/08/2013
Bom dia,
Você ja tentou montar uma procedure para retornar essa consulta?
segue exemplo de um select:
Você ja tentou montar uma procedure para retornar essa consulta?
segue exemplo de um select:
select distinct f.* from funcionalidade as f inner join perfil_funcionalidade as pf on pf.cod_funcionalidade = f.cod_funcionalidade inner join perfil as p on p.cod_perfil = pf.cod_prefil inner join usuario_perfil up on up.cod_perfil = p.cod_perfil inner join usuario as u on u.cod_usuario = up.cod+usuario where u.cod_usuario = :codigo public IList<funcionalidade> All() { IList<funcionalidade> funcionalidades = new List<funcionalidade>(); using (SeuContexto context2 = new SeuContexto()) { try { if (context2.Database.Connection.State != System.Data.ConnectionState.Open) context2.Database.Connection.Open(); IDbCommand cmd = context2.Database.Connection.CreateCommand(); cmd.CommandText = "";//Aqui sua consulta IDataReader dr = cmd.ExecuteReader(); funcionalidades = popularObjeto(dr);//Aqui vc cria um metodo que le o data reader e popula o objeto; } catch (Exception ex) { } finally { context2.Database.Connection.Close(); } return list; } }
GOSTEI 0
Matheus Caldas
21/08/2013
Bom dia,
Você ja tentou montar uma procedure para retornar essa consulta?
segue exemplo de um select:
Você ja tentou montar uma procedure para retornar essa consulta?
segue exemplo de um select:
select distinct f.* from funcionalidade as f inner join perfil_funcionalidade as pf on pf.cod_funcionalidade = f.cod_funcionalidade inner join perfil as p on p.cod_perfil = pf.cod_prefil inner join usuario_perfil up on up.cod_perfil = p.cod_perfil inner join usuario as u on u.cod_usuario = up.cod+usuario where u.cod_usuario = :codigo public IList<funcionalidade> All() { IList<funcionalidade> funcionalidades = new List<funcionalidade>(); using (SeuContexto context2 = new SeuContexto()) { try { if (context2.Database.Connection.State != System.Data.ConnectionState.Open) context2.Database.Connection.Open(); IDbCommand cmd = context2.Database.Connection.CreateCommand(); cmd.CommandText = "";//Aqui sua consulta IDataReader dr = cmd.ExecuteReader(); funcionalidades = popularObjeto(dr);//Aqui vc cria um metodo que le o data reader e popula o objeto; } catch (Exception ex) { } finally { context2.Database.Connection.Close(); } return list; } }
GOSTEI 0
Junior_jaco
21/08/2013
Bom dia,
Você ja tentou montar uma procedure para retornar essa consulta?
segue exemplo de um select:
Você ja tentou montar uma procedure para retornar essa consulta?
segue exemplo de um select:
select distinct f.* from funcionalidade as f inner join perfil_funcionalidade as pf on pf.cod_funcionalidade = f.cod_funcionalidade inner join perfil as p on p.cod_perfil = pf.cod_prefil inner join usuario_perfil up on up.cod_perfil = p.cod_perfil inner join usuario as u on u.cod_usuario = up.cod+usuario where u.cod_usuario = :codigo public IList<funcionalidade> All() { IList<funcionalidade> funcionalidades = new List<funcionalidade>(); using (SeuContexto context2 = new SeuContexto()) { try { if (context2.Database.Connection.State != System.Data.ConnectionState.Open) context2.Database.Connection.Open(); IDbCommand cmd = context2.Database.Connection.CreateCommand(); cmd.CommandText = "";//Aqui sua consulta IDataReader dr = cmd.ExecuteReader(); funcionalidades = popularObjeto(dr);//Aqui vc cria um metodo que le o data reader e popula o objeto; } catch (Exception ex) { } finally { context2.Database.Connection.Close(); } return list; } }
Meu velho, montando o comando SQL eu consigo, mas como eu disse no titulo, estou utilizando o entity framework, esse é o problema.
GOSTEI 0
Matheus Caldas
21/08/2013
Bom dia,
Você ja tentou montar uma procedure para retornar essa consulta?
segue exemplo de um select:
Você ja tentou montar uma procedure para retornar essa consulta?
segue exemplo de um select:
select distinct f.* from funcionalidade as f inner join perfil_funcionalidade as pf on pf.cod_funcionalidade = f.cod_funcionalidade inner join perfil as p on p.cod_perfil = pf.cod_prefil inner join usuario_perfil up on up.cod_perfil = p.cod_perfil inner join usuario as u on u.cod_usuario = up.cod+usuario where u.cod_usuario = :codigo public IList<funcionalidade> All() { IList<funcionalidade> funcionalidades = new List<funcionalidade>(); using (SeuContexto context2 = new SeuContexto()) { try { if (context2.Database.Connection.State != System.Data.ConnectionState.Open) context2.Database.Connection.Open(); IDbCommand cmd = context2.Database.Connection.CreateCommand(); cmd.CommandText = "";//Aqui sua consulta IDataReader dr = cmd.ExecuteReader(); funcionalidades = popularObjeto(dr);//Aqui vc cria um metodo que le o data reader e popula o objeto; } catch (Exception ex) { } finally { context2.Database.Connection.Close(); } return list; } }
Meu velho, montando o comando SQL eu consigo, mas como eu disse no titulo, estou utilizando o entity framework, esse é o problema.
Desculpe,
talvez isso ajude:
public IList<funcionalidade> FindAll(usuario user) { using (SeuContexto context = new SeuContexto()) { var query = from funcionalidade f in context.funcionalidade join perfil_funcionalidade pf in context.perfil_funcionalidade on pf.cod_funcionalidade = f.cod_funcionalidade join perfil p in context.perfil on p.cod_perfil = pf.cod_perfil join usuario_perfil up in context.usuario_perfil on up.cod_perfil = p.cod_perfil join usuario u in context.usuario on u.cod_usuario = up.cod_usuario where u.cod_usuario == user.cod_usuario select f; return query.ToList().GroupBy(p => p.cod_funcionalidade).Select(g => g.First()); } }
GOSTEI 0
Junior_jaco
21/08/2013
Bom dia,
Você ja tentou montar uma procedure para retornar essa consulta?
segue exemplo de um select:
Você ja tentou montar uma procedure para retornar essa consulta?
segue exemplo de um select:
select distinct f.* from funcionalidade as f inner join perfil_funcionalidade as pf on pf.cod_funcionalidade = f.cod_funcionalidade inner join perfil as p on p.cod_perfil = pf.cod_prefil inner join usuario_perfil up on up.cod_perfil = p.cod_perfil inner join usuario as u on u.cod_usuario = up.cod+usuario where u.cod_usuario = :codigo public IList<funcionalidade> All() { IList<funcionalidade> funcionalidades = new List<funcionalidade>(); using (SeuContexto context2 = new SeuContexto()) { try { if (context2.Database.Connection.State != System.Data.ConnectionState.Open) context2.Database.Connection.Open(); IDbCommand cmd = context2.Database.Connection.CreateCommand(); cmd.CommandText = "";//Aqui sua consulta IDataReader dr = cmd.ExecuteReader(); funcionalidades = popularObjeto(dr);//Aqui vc cria um metodo que le o data reader e popula o objeto; } catch (Exception ex) { } finally { context2.Database.Connection.Close(); } return list; } }
Meu velho, montando o comando SQL eu consigo, mas como eu disse no titulo, estou utilizando o entity framework, esse é o problema.
Desculpe,
talvez isso ajude:
public IList<funcionalidade> FindAll(usuario user) { using (SeuContexto context = new SeuContexto()) { var query = from funcionalidade f in context.funcionalidade join perfil_funcionalidade pf in context.perfil_funcionalidade on pf.cod_funcionalidade = f.cod_funcionalidade join perfil p in context.perfil on p.cod_perfil = pf.cod_perfil join usuario_perfil up in context.usuario_perfil on up.cod_perfil = p.cod_perfil join usuario u in context.usuario on u.cod_usuario = up.cod_usuario where u.cod_usuario == user.cod_usuario select f; return query.ToList().GroupBy(p => p.cod_funcionalidade).Select(g => g.First()); } }
Irei testar mais tarde e te dou uma resposta Mateus, de qualquer maneira valeu cara!
GOSTEI 0
Junior_jaco
21/08/2013
No meu contexto eu não consigo enxergar as tabelas de associação, como posso proceder nesse caso?
Meu velho, montando o comando SQL eu consigo, mas como eu disse no titulo, estou utilizando o entity framework, esse é o problema.
Desculpe,
talvez isso ajude:
Irei testar mais tarde e te dou uma resposta Mateus, de qualquer maneira valeu cara!
Bom dia,
Você ja tentou montar uma procedure para retornar essa consulta?
segue exemplo de um select:
Você ja tentou montar uma procedure para retornar essa consulta?
segue exemplo de um select:
select distinct f.* from funcionalidade as f inner join perfil_funcionalidade as pf on pf.cod_funcionalidade = f.cod_funcionalidade inner join perfil as p on p.cod_perfil = pf.cod_prefil inner join usuario_perfil up on up.cod_perfil = p.cod_perfil inner join usuario as u on u.cod_usuario = up.cod+usuario where u.cod_usuario = :codigo public IList<funcionalidade> All() { IList<funcionalidade> funcionalidades = new List<funcionalidade>(); using (SeuContexto context2 = new SeuContexto()) { try { if (context2.Database.Connection.State != System.Data.ConnectionState.Open) context2.Database.Connection.Open(); IDbCommand cmd = context2.Database.Connection.CreateCommand(); cmd.CommandText = "";//Aqui sua consulta IDataReader dr = cmd.ExecuteReader(); funcionalidades = popularObjeto(dr);//Aqui vc cria um metodo que le o data reader e popula o objeto; } catch (Exception ex) { } finally { context2.Database.Connection.Close(); } return list; } }
Meu velho, montando o comando SQL eu consigo, mas como eu disse no titulo, estou utilizando o entity framework, esse é o problema.
Desculpe,
talvez isso ajude:
public IList<funcionalidade> FindAll(usuario user) { using (SeuContexto context = new SeuContexto()) { var query = from funcionalidade f in context.funcionalidade join perfil_funcionalidade pf in context.perfil_funcionalidade on pf.cod_funcionalidade = f.cod_funcionalidade join perfil p in context.perfil on p.cod_perfil = pf.cod_perfil join usuario_perfil up in context.usuario_perfil on up.cod_perfil = p.cod_perfil join usuario u in context.usuario on u.cod_usuario = up.cod_usuario where u.cod_usuario == user.cod_usuario select f; return query.ToList().GroupBy(p => p.cod_funcionalidade).Select(g => g.First()); } }
Irei testar mais tarde e te dou uma resposta Mateus, de qualquer maneira valeu cara!
GOSTEI 0
Junior_jaco
21/08/2013
No meu contexto eu não consigo enxergar as tabelas de associação, como posso proceder nesse caso?
GOSTEI 0
Matheus Caldas
21/08/2013
boa noite,
como vc esta fazendo o mapeamento das suas entidades?
como vc esta fazendo o mapeamento das suas entidades?
GOSTEI 0
Matheus Caldas
21/08/2013
boa noite,
como vc esta fazendo o mapeamento das suas entidades?
como vc esta fazendo o mapeamento das suas entidades?
GOSTEI 0
Matheus Caldas
21/08/2013
boa noite,
como vc esta fazendo o mapeamento das suas entidades?
como vc esta fazendo o mapeamento das suas entidades?
GOSTEI 0
Matheus Caldas
21/08/2013
boa noite,
como vc esta fazendo o mapeamento das suas entidades?
como vc esta fazendo o mapeamento das suas entidades?
GOSTEI 0
Junior_jaco
21/08/2013
boa noite,
como vc esta fazendo o mapeamento das suas entidades?
como vc esta fazendo o mapeamento das suas entidades?
Vc se refere à alguma configuração a mais que tem que ser feita?
Estou utlizando o entity normal.
GOSTEI 0
Matheus Caldas
21/08/2013
boa noite,
como vc esta fazendo o mapeamento das suas entidades?
como vc esta fazendo o mapeamento das suas entidades?
Vc se refere à alguma configuração a mais que tem que ser feita?
Estou utlizando o entity normal.
Gostaria de saber se utilizou POCO ou Code first para utilizar o Entity, pois em ambos os casos você tera que criar as entidades de relacionamento de ambas as classes, se for possivel vc postar as classes posso ajudar de uma melhor forma.
GOSTEI 0
Junior_jaco
21/08/2013
A cara talvez meu problema seja esse. Não estou utilizando nenhum dos dois. Estava fazendo tudo de maneira padrão quando se cria uma modelo no projeto. Qual dos dois você me indicaria pra utilizar?
GOSTEI 0
Matheus Caldas
21/08/2013
A cara talvez meu problema seja esse. Não estou utilizando nenhum dos dois. Estava fazendo tudo de maneira padrão quando se cria uma modelo no projeto. Qual dos dois você me indicaria pra utilizar?
Eu aconselho Code First, se puder me passar seu e-mail te mando um projeto de exemplo.
GOSTEI 0
Junior_jaco
21/08/2013
A cara talvez meu problema seja esse. Não estou utilizando nenhum dos dois. Estava fazendo tudo de maneira padrão quando se cria uma modelo no projeto. Qual dos dois você me indicaria pra utilizar?
Eu aconselho Code First, se puder me passar seu e-mail te mando um projeto de exemplo.
Segue: carlosjunior.007@gmail.com
Valeu pela atenção cara.
GOSTEI 0
Junior_jaco
21/08/2013
A cara talvez meu problema seja esse. Não estou utilizando nenhum dos dois. Estava fazendo tudo de maneira padrão quando se cria uma modelo no projeto. Qual dos dois você me indicaria pra utilizar?
Eu aconselho Code First, se puder me passar seu e-mail te mando um projeto de exemplo.
Matheus, estava dando uma pesquisada a respeito do code first e o POCO, e vi que a utilização do code first é melhor quando se pretende gerar o banco através das classes, mas posso está enganado sobre a utilização dele. O POCO ira gerar as classes a partir do banco, é bom também, mas não sei se irá resolver o meu problema.
Vou te mandar o link abaixo das tabelas no qual estou tentando fazer a consulta, só frisando, que hoje meu grande problema são as tabelas de associação que tenho no banco, no qual o entity não me apresenta no codigo.
http://imageshack.us/photo/my-images/191/txod.jpg/
GOSTEI 0
Junior_jaco
21/08/2013
Consegui fazer algo, porém, travei na outra parte... Estou com duvidas no seguinte código:
public DataTable getMenu(int idUsuario)
{
DataTable retorno = null;
List<tfuncionalidade> listaFunc = new List<tfuncionalidade>();
List<tusuario> listUsuario = new List<tusuario>();
List<tperfil> listPerfil = new List<tperfil>();
try
{
using (segEntities context = new segEntities())
{
//Aqui eu obtenho o usuario e seus perfis.
var perfil = context.tusuario.Include("tperfil").Where(c => c.ID_USUARIO == idUsuario).ToList();
//percorro o objeto removendo os id's dos perfis e inserindo em uma lista do de entidades perfil
foreach (var item in perfil)
{
foreach (var item1 in item.tperfil)
{
tperfil itemPerfil = (tperfil)item1;
listPerfil.Add(itemPerfil);
}
}
}
}
catch (Exception ex)
{
throw ex;
}
return retorno;
}
Agora só falta fazer uma consulta pra trazer as funcionalidades relacionado aos perfis, porém não estou conseguindo fazer com mais de um id.
public DataTable getMenu(int idUsuario)
{
DataTable retorno = null;
List<tfuncionalidade> listaFunc = new List<tfuncionalidade>();
List<tusuario> listUsuario = new List<tusuario>();
List<tperfil> listPerfil = new List<tperfil>();
try
{
using (segEntities context = new segEntities())
{
//Aqui eu obtenho o usuario e seus perfis.
var perfil = context.tusuario.Include("tperfil").Where(c => c.ID_USUARIO == idUsuario).ToList();
//percorro o objeto removendo os id's dos perfis e inserindo em uma lista do de entidades perfil
foreach (var item in perfil)
{
foreach (var item1 in item.tperfil)
{
tperfil itemPerfil = (tperfil)item1;
listPerfil.Add(itemPerfil);
}
}
}
}
catch (Exception ex)
{
throw ex;
}
return retorno;
}
Agora só falta fazer uma consulta pra trazer as funcionalidades relacionado aos perfis, porém não estou conseguindo fazer com mais de um id.
GOSTEI 0
Matheus Caldas
21/08/2013
Consegui fazer algo, porém, travei na outra parte... Estou com duvidas no seguinte código:
public DataTable getMenu(int idUsuario)
{
DataTable retorno = null;
List<tfuncionalidade> listaFunc = new List<tfuncionalidade>();
List<tusuario> listUsuario = new List<tusuario>();
List<tperfil> listPerfil = new List<tperfil>();
try
{
using (segEntities context = new segEntities())
{
//Aqui eu obtenho o usuario e seus perfis.
var perfil = context.tusuario.Include("tperfil").Where(c => c.ID_USUARIO == idUsuario).ToList();
//percorro o objeto removendo os id's dos perfis e inserindo em uma lista do de entidades perfil
foreach (var item in perfil)
{
foreach (var item1 in item.tperfil)
{
tperfil itemPerfil = (tperfil)item1;
listPerfil.Add(itemPerfil);
}
}
}
}
catch (Exception ex)
{
throw ex;
}
return retorno;
}
Agora só falta fazer uma consulta pra trazer as funcionalidades relacionado aos perfis, porém não estou conseguindo fazer com mais de um id.
public DataTable getMenu(int idUsuario)
{
DataTable retorno = null;
List<tfuncionalidade> listaFunc = new List<tfuncionalidade>();
List<tusuario> listUsuario = new List<tusuario>();
List<tperfil> listPerfil = new List<tperfil>();
try
{
using (segEntities context = new segEntities())
{
//Aqui eu obtenho o usuario e seus perfis.
var perfil = context.tusuario.Include("tperfil").Where(c => c.ID_USUARIO == idUsuario).ToList();
//percorro o objeto removendo os id's dos perfis e inserindo em uma lista do de entidades perfil
foreach (var item in perfil)
{
foreach (var item1 in item.tperfil)
{
tperfil itemPerfil = (tperfil)item1;
listPerfil.Add(itemPerfil);
}
}
}
}
catch (Exception ex)
{
throw ex;
}
return retorno;
}
Agora só falta fazer uma consulta pra trazer as funcionalidades relacionado aos perfis, porém não estou conseguindo fazer com mais de um id.
Desculpa a demora em responder, mas não consegui entender bem oque quer retornar, se for as funcionalidades que o usuário possui somente falta vc criar um metodo buscarFuncionalidades nele vc tera que fzer um join utilizando SQL mesmo e somente retornar os objetos que pertence a tal usuário, mas acho que vc esta se preocupando muito em fazer utilizando EntityFramework, se não for possivel, utilize o SQL mesmo, tenta usar essa classe para executar seu script:
public class UtilRepository { private ObjectContext _context; public UtilRepository() : this(((IObjectContextAdapter)new SeuContexto()).ObjectContext) { } public UtilRepository(ObjectContext context) { _context = context; } public List<object> ExecQuery(string query) { _context.CommandTimeout = 99999; IDbConnection con = (_context.Connection as EntityConnection).StoreConnection; con.Open(); List<object> lista = new List<object>(); using (IDbCommand cmd = con.CreateCommand()) { cmd.CommandText = query; using (DbDataReader reader = (DbDataReader)cmd.ExecuteReader()) { while (reader.Read()) { object[] values = new object[reader.FieldCount]; reader.GetValues(values); lista.Add(values); } } } return lista; } internal List<object> ExecQuery(string query, object[] parametros) { _context.CommandTimeout = 99999; IDbConnection conn = (_context.Connection as EntityConnection).StoreConnection; conn.Open(); List<object> lista = new List<object>(); using (IDbCommand cmd = conn.CreateCommand()) { foreach (var p in parametros) cmd.Parameters.Add(p); cmd.CommandText = query; using (DbDataReader reader = (DbDataReader)cmd.ExecuteReader()) { while (reader.Read()) { object[] values = new object[reader.FieldCount]; reader.GetValues(values); lista.Add(values); } } } return lista; } }
Aqui seria como usar
Usuario user = context.tusuario.Include("tperfil").Where(c => c.ID_USUARIO == idUsuario).FirstOrDefault(); SqlParameter user_code = new SqlParameter("codigo", System.Data.SqlDbType.Int, codigo); object[] parametros = new SqlParameter[] { user_code }; IList<Funcioanalidade> func = new List<Funcioanalidade>(); foreach (object[] item in new UtilRepository().ExecQuery("PR_GetFuncionalidades @Codigo", parametros).ToList()) { func.Add(new Funcionalidade(){ Codigo = Convert.ToInt32(item[0]), Nome = Convert.ToString(item[1], Perfil = new Perfil() { Codigo = Convert.ToInt32(item[2]), } }); } //aqui vc monta as funcionalidade no objeto user
Qualquer duvida estou a disposição.
GOSTEI 0
Matheus Caldas
21/08/2013
Consegui fazer algo, porém, travei na outra parte... Estou com duvidas no seguinte código:
public DataTable getMenu(int idUsuario)
{
DataTable retorno = null;
List<tfuncionalidade> listaFunc = new List<tfuncionalidade>();
List<tusuario> listUsuario = new List<tusuario>();
List<tperfil> listPerfil = new List<tperfil>();
try
{
using (segEntities context = new segEntities())
{
//Aqui eu obtenho o usuario e seus perfis.
var perfil = context.tusuario.Include("tperfil").Where(c => c.ID_USUARIO == idUsuario).ToList();
//percorro o objeto removendo os id's dos perfis e inserindo em uma lista do de entidades perfil
foreach (var item in perfil)
{
foreach (var item1 in item.tperfil)
{
tperfil itemPerfil = (tperfil)item1;
listPerfil.Add(itemPerfil);
}
}
}
}
catch (Exception ex)
{
throw ex;
}
return retorno;
}
Agora só falta fazer uma consulta pra trazer as funcionalidades relacionado aos perfis, porém não estou conseguindo fazer com mais de um id.
public DataTable getMenu(int idUsuario)
{
DataTable retorno = null;
List<tfuncionalidade> listaFunc = new List<tfuncionalidade>();
List<tusuario> listUsuario = new List<tusuario>();
List<tperfil> listPerfil = new List<tperfil>();
try
{
using (segEntities context = new segEntities())
{
//Aqui eu obtenho o usuario e seus perfis.
var perfil = context.tusuario.Include("tperfil").Where(c => c.ID_USUARIO == idUsuario).ToList();
//percorro o objeto removendo os id's dos perfis e inserindo em uma lista do de entidades perfil
foreach (var item in perfil)
{
foreach (var item1 in item.tperfil)
{
tperfil itemPerfil = (tperfil)item1;
listPerfil.Add(itemPerfil);
}
}
}
}
catch (Exception ex)
{
throw ex;
}
return retorno;
}
Agora só falta fazer uma consulta pra trazer as funcionalidades relacionado aos perfis, porém não estou conseguindo fazer com mais de um id.
Bom dia Junior conseguiu resolver seu problema?
GOSTEI 0