Сначала я использую код Entity Framework 4.1, для выполнения поиска ниже возвращается сообщение об ошибке: Указанный тип элемента ENDESC_CEP не поддерживается в LINQ to Entities.Поддерживаются только инициализаторы, элементы сущностей и свойства навигации сущностей. Это происходит при использовании параметра qunado SCEP.Даже при параметре SCEP step адресные данные не загружаются.Кто-нибудь скажет мне, что мне делать?Я признателен за любую помощь.
using (SecurityCtx ctx = new SecurityCtx())
{
ctx.Configuration.LazyLoadingEnabled = true;
var query = ctx.Escola.Include("UnidadeFederativa").Include("Municipio").Include("EnderecoEscolas").Where(p => p.ID_EMPRESA == IdEmpresa);
if ( (!String.IsNullOrEmpty(sUF) ) && (sUF != "ZZ") )
{
query = query.Where(p => p.UnidadeFederativa.UF_SIGLA == sUF);
}
if (!String.IsNullOrEmpty(sMunicipio))
{
query = query.Where(p => p.Municipio.MUN_DESCRICAO.Contains(sMunicipio.Trim()));
}
if ( ! String.IsNullOrEmpty( sNome ) )
{
query = query.Where(p => p.ESCOLA_NOME.Contains(sNome.Trim()));
}
if ( ! String.IsNullOrEmpty( sCodigo) )
{
query = query.Where(p => p.ESCOLA_CODIGO.Contains(sCodigo.Trim()));
}
if (!String.IsNullOrEmpty(sEndereco))
{
query = query.Where(p => p.EnderecoEscolas.ToList().Select( item => item.ENDESC_ENDERECO.Contains( sEndereco.Trim() ) ).First() );
}
if (!String.IsNullOrEmpty(sBairro))
{
query = query.Where(p => p.EnderecoEscolas.ToList().Select( item => item.ENDESC_BAIRRO.Contains( sBairro.Trim() ) ).First() );
}
if (!String.IsNullOrEmpty(sCEP))
{
query = query.Where(p => p.ENDESC_CEP.Contains(sCEP) );
}
query = query.OrderBy( p => p.ESCOLA_NOME.Trim() ).ToList().Select(item => new Escola
{
ESCOLA_ID = item.ESCOLA_ID,
ID_EMPRESA = item.ID_EMPRESA,
ESCOLA_CODIGO = item.ESCOLA_CODIGO,
ESCOLA_NOME = item.ESCOLA_NOME,
ESCOLA_CNPJ = item.ESCOLA_CNPJ,
ESCOLA_E_MAIL = item.ESCOLA_E_MAIL,
ESCOLA_URL = item.ESCOLA_URL,
ESCOLA_NOME_FANTASIA = item.ESCOLA_NOME_FANTASIA,
ESCOLA_UF_ID = item.ESCOLA_UF_ID,
ESCOLA_MUNICIPIO_ID = item.ESCOLA_MUNICIPIO_ID,
ESCOLA_REDE_ID = item.ESCOLA_REDE_ID,
ESCOLA_LOCAL_ID = item.ESCOLA_LOCAL_ID,
STATUS_MUNICIPIO_ID = item.STATUS_MUNICIPIO_ID,
CODIGO_NIVEL_SE_ID = item.CODIGO_NIVEL_SE_ID,
CODIGO_PER_PLA_DIDATICO_ID = item.CODIGO_PER_PLA_DIDATICO_ID,
CODIGO_PER_PLA_PARADIDATICO_ID = item.CODIGO_PER_PLA_PARADIDATICO_ID,
ESCOLA_ORIGEM_DADOS_ID = item.ESCOLA_ORIGEM_DADOS_ID,
ESCOLA_ATIVA = item.ESCOLA_ATIVA,
ESCOLA_DATA_CADASTRAMENTO = item.ESCOLA_DATA_CADASTRAMENTO,
ESCOLA_DATA_ATUALIZACAO = item.ESCOLA_DATA_ATUALIZACAO,
UF_SIGLA = item.UnidadeFederativa.UF_SIGLA,
UF_DESCRICAO = item.UnidadeFederativa.UF_DESCRICAO,
MUN_DESCRICAO = item.Municipio.MUN_DESCRICAO,
ENDESC_ENDERECO = item.ENDESC_ENDERECO,
ENDESC_NRO = item.ENDESC_NRO,
ENDESC_CEP = item.ENDESC_CEP ,
ENDESC_COMPL = item.ENDESC_COMPL ,
ENDESC_BAIRRO = item.ENDESC_BAIRRO
}).AsQueryable();
return query;
DAO:
[Table("CAD_ESCOLAS")]
public class Escola
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int ESCOLA_ID { get; set; }
[Required]
public int ID_EMPRESA { get; set; }
[ForeignKey("ID_EMPRESA")]
public virtual Empresa Empresa { get; set; }
[StringLength(10), Required]
[MinLength(8)]
public string ESCOLA_CODIGO { get; set; }
[StringLength(120), Required]
[MinLength(20)]
public string ESCOLA_NOME { get; set; }
[StringLength(20)]
public string ESCOLA_CNPJ { get; set; }
[StringLength(120)]
public string ESCOLA_E_MAIL { get; set; }
[StringLength(120)]
public string ESCOLA_URL { get; set; }
[StringLength(80)]
public string ESCOLA_NOME_FANTASIA { get; set; }
[Required]
public int ESCOLA_UF_ID { get; set; }
[ForeignKey("ESCOLA_UF_ID")]
public virtual UnidadeFederativa UnidadeFederativa { get; set; }
[Required]
public int ESCOLA_MUNICIPIO_ID { get; set; }
[ForeignKey("ESCOLA_MUNICIPIO_ID")]
public virtual Municipio Municipio { get; set; }
[Required]
public int ESCOLA_REDE_ID { get; set; }
[ForeignKey("ESCOLA_REDE_ID")]
public virtual RedeEnsino RedeEnsino { get; set; }
[Required]
public int ESCOLA_LOCAL_ID { get; set; }
[ForeignKey("ESCOLA_LOCAL_ID")]
public virtual TipoLocalizacao TipoLocalizacao { get; set; }
[Required]
public int STATUS_MUNICIPIO_ID { get; set; }
[ForeignKey("STATUS_MUNICIPIO_ID")]
public virtual StatusMunicipio StatusMunicipio { get; set; }
[Required]
public int CODIGO_NIVEL_SE_ID { get; set; }
[ForeignKey("CODIGO_NIVEL_SE_ID")]
public virtual NivelSocioEconomico NivelSocioEconomico { get; set; }
[Required]
public int CODIGO_PER_PLA_DIDATICO_ID { get; set; }
[ForeignKey("CODIGO_PER_PLA_DIDATICO_ID")]
public virtual PerPlanDidatico PerPlanDidatico { get; set; }
[Required]
public int CODIGO_PER_PLA_PARADIDATICO_ID { get; set; }
[ForeignKey("CODIGO_PER_PLA_PARADIDATICO_ID")]
public virtual PerPlanParadidatico PerPlanParadidatico { get; set; }
[Required]
public int ESCOLA_ORIGEM_DADOS_ID { get; set; }
[ForeignKey("ESCOLA_ORIGEM_DADOS_ID")]
public virtual OrigemDadosEsc OrigemDadosEsc { get; set; }
[Required]
public bool ESCOLA_ATIVA { get; set; }
[Required]
public DateTime ESCOLA_DATA_CADASTRAMENTO { get; set; }
[Required]
public DateTime ESCOLA_DATA_ATUALIZACAO { get; set; }
[NotMapped]
public String UF_SIGLA { get; set; }
[NotMapped]
public String UF_DESCRICAO { get; set; }
[NotMapped]
public String MUN_DESCRICAO { get; set; }
[NotMapped]
public String ENDESC_ENDERECO { get; set; }
[NotMapped]
public String ENDESC_NRO { get; set; }
[NotMapped]
public String ENDESC_CEP { get; set; }
[NotMapped]
public String ENDESC_COMPL { get; set; }
[NotMapped]
public String ENDESC_BAIRRO { get; set; }
public virtual ICollection<EnderecoEscola> EnderecoEscolas { get; set; }
public Escola()
{
EnderecoEscolas = new HashSet<EnderecoEscola>();
}
}
namespace DAL
{
[Table("CAD_ENDERECO_ESCOLA")]
public class EnderecoEscola
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int ENDESC_ID { get; set; }
[Required]
public int ESCOLA_ID { get; set; }
[ForeignKey("ESCOLA_ID")]
public virtual Escola Escola { get; set; }
[Required]
public int TPOEND_ID { get; set; }
[ForeignKey("TPOEND_ID")]
public virtual TipoEndereco TipoEndereco { get; set; }
[Required]
public int ENDESC_UF_ID { get; set; }
[ForeignKey("ENDESC_UF_ID")]
public virtual UnidadeFederativa UnidadeFederativa { get; set; }
[Required]
public int ENDESC_MUN_iD { get; set; }
[ForeignKey("ENDESC_MUN_iD")]
public virtual Municipio Municipio { get; set; }
[StringLength(10), Required]
[MinLength(8)]
public string ENDESC_CEP { get; set; }
[StringLength(100), Required]
[MinLength(10)]
public string ENDESC_ENDERECO { get; set; }
[StringLength(15)]
public string ENDESC_NRO { get; set; }
[StringLength(25)]
public string ENDESC_COMPL { get; set; }
[StringLength(70)]
public string ENDESC_BAIRRO { get; set; }
}
}
Tks
Мне нужно представить данные в Школе объекта Grid и связанных с ним объектахт.е. UnidadeFederativa, Municipio и EscolaEnderecos, как показано ниже:
select a.ESCOLA_NOME,
c.UF_SIGLA,
d.MUN_DESCRICAO,
b.ENDESC_ENDERECO,
b.ENDESC_BAIRRO
from CAD_ESCOLAS a,
CAD_ENDERECO_ESCOLA b,
CAD_UNIDADE_FEDERATIVA c,
CAD_MUNICIPIO d
where a.ESCOLA_UF_ID = c.UF_ID and
a.ESCOLA_MUNICIPIO_ID = d.MUN_ID and
b.ESCOLA_ID = a.ESCOLA_ID and
b.ENDESC_CEP like '03138%'
order by 1
Я использую свойства [notmapped] только для того, чтобы представить одну и ту же запись данных, возвращенную различными связанными объектами.
Дело в том, что я не могу получить доступ к свойствам сущности EscolaEnderecos, где применить условие, я могу внести в восстанавливаемые данные EscolaEnderecos только первую запись и не все, что satifizerem WHERE, следующим образом:
item.EnderecoEscolas.Select (p => p.ENDESC_ENDERECO). First ()
Короче говоря, я не могу, в пункте, где EnderecoEscola имеет доступ к свойству, а также не может предоставить данные EnderecoEscola для каждой записи, возвращенной из школьной организации.
Если кто-то может мне помочь, я оченьблагодарен.
Tks
Мне нужно представить данные в Школе Грид-сущности и связанных с ней сущностях, т.е. UnidadeFederativa, Municipio и EscolaEnderecos, как показано ниже:
select a.ESCOLA_NOME,
c.UF_SIGLA,
d.MUN_DESCRICAO,
b.ENDESC_ENDERECO,
b.ENDESC_BAIRRO
from CAD_ESCOLAS a,
CAD_ENDERECO_ESCOLA b,
CAD_UNIDADE_FEDERATIVA c,
CAD_MUNICIPIO d
where a.ESCOLA_UF_ID = c.UF_ID and
a.ESCOLA_MUNICIPIO_ID = d.MUN_ID and
b.ESCOLA_ID = a.ESCOLA_ID and
b.ENDESC_CEP like '03138%'
order by 1
Я использую свойства [notmapped] только для представления одной и той же записи данных, возвращенной различными связанными объектами.
Дело в том, что я не могу получить доступ к свойствам сущности EscolaEnderecos, где применить условие, я могу внести в восстанавливающие данные EscolaEnderecos только первую запись и не все, которые satifizerem WHERE, как указано ниже: item.EnderecoEscolas.Select (p => p.ENDESC_ENDERECO).First ()
Короче говоря, я не могу, в пункте, где EnderecoEscola получает доступ к свойству, а также не может принести данные EnderecoEscola для каждой записи, возвращенной из школьной организации.
Если кто-то может руководитьЯ очень благодарен.
Tks