Boa noite!
Estou com a seguinte dúvida (desculpe se minha pergunta não for muito clara, pois sou novato no ambiente WEB, bem como ASP.NET MVC e C#).
Estou usando Interfaces, e Ninject em minha aplicação.
Tenho um banco de dados com os CEPs do Brasil, e está relacionado e normalizado no SQL Server da seguinte forma:
Para simplificar, vou colocar somente estas 2 tabelas.
Estados (IdEstado, DscEstado, DscUf)
Cidades (IdCidade, DscCidade, IdEstado)
Quero usar a classe cidades para popular a combo com os estados, chamando da seguinte forma:
Cidades.Estado.IdEstado e Cidades.Estado.DscEstado
Como eu implemento isso? uso IQueryable<Estados> Estados dentro da classe cidades ou ponho isso dentro da interface (ICidades).
Atualmente esta disposta da seguinte forma:
public class Cidade
{
[Key]
[Required]
public int IdCidade { get; set; }
[Required]
[StringLength(120)]
public string DscCidade { get; set; }
[Required]
public int IdEstado { get; set; }
public Estado Estado { get; set; }
}
ICidadeRepository
public interface ICidadeRepository
{
IQueryable<Cidade> Cidades {get;}
}
EFCidadeRepository
public class EFCidadeRepository : ICidadeRepository
{
private readonly CepsDB db = new CepsDB();
public IQueryable<Cidade> Cidades {
get { return db.Cidades; }
}
}
Preciso de saber 2 coisas:
1 - Como pegar o DscUf pela classe Cidades, sem ter que acessar 2 tabelas manualmente.
2 - neste cenário são poucos registros, esse método é aconselhável para trabalhar com um banco com aprox. 900 mil registros? Se não, quais seriam as melhores praticas para um caso como esse?
Antecipadamente agradecido!