Для сущностей:
[Table("CAD_ESCOLAS")]
public class Escola
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int ESCOLA_ID { get; set; }
[StringLength(120), Required]
[MinLength(8)]
public string ESCOLA_NOME { get; set; }
[NotMapped]
public String ENDESC_ENDERECO { get; set; }
}
[Table("CAD_ENDERECO_ESCOLA")]
public class EnderecoEscola
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int ENDESC_ID { get; set; }
[Required]
public int ESCOLA_ID { get; set; }
[Association("Escolas", "ESCOLA_ID", "ESCOLA_ID")]
[ForeignKey("ESCOLA_ID")]
public virtual Escola Escola { get; set; }
[StringLength(100), Required]
[MinLength(10)]
public string ENDESC_ENDERECO { get; set; }
}
Из запроса sql:
select esc.* , ende.ENDESC_ENDERECO
from CAD_ESCOLAS as esc left join CAD_ENDERECO_ESCOLA as ende
on esc.ESCOLA_ID = ende.ESCOLA_ID
where esc.ESCOLA_NOME like '%Escola%'
return:
ESCOLA_ID ESCOLA_NOME ENDESC_ENDERECO
1 Escola 1 Rua 1
2 Escola 2 Rua 2
3 Escola 3 null
4 Escola 4 null
как преобразовать запрос sql в linq для сущностейвыше соответствующего?
Было бы что-то вроде этого, но как установить левое соединение?
public IQueryable<Escola> GetEscola()
{
using (SecurityCtx ctx = new SecurityCtx())
{
ctx.Configuration.LazyLoadingEnabled = true;
var query = ctx.Escola.Include("EnderecoEscola").Where( p => p.ESCOLA_NOME.Contains("Escola") . . . . . .
Select( esco => new Escola
{
ESCOLA_ID = esco.ESCOLA_ID,
ESCOLA_NOME = esco.ESCOLA_NOME,
ENDESC_ENDERECO = esco.ENDESC_ENDERECO,
)).AsQueryable();
return query;
}
}
Пожалуйста, любые предложения очень приветствуются.