こんばんは、私はこの問題を解決しようとして2日間ですが、何も得られませんでした。バグだと思いますが、誰か助けてもらえますか?次のエラーメッセージが表示されます。
'where句'の不明な列'Distinct1.nCdSite'
[MySqlException(0x80004005):不明な列'Distinct1.nCdSite' in'where句']MySql.Data.MySqlClient.MySqlStream.ReadPacket()+501 MySql.Data.MySqlClient.NativeDriver.GetResult(Int32&affectedRow、Int64&insertedId)+450 MySql.Data.MySqlClient.Driver.NextResult(Int32 statementId、Boolean force)+136 MySql.Data.MySqlClient.MySqlDataReader.NextResult()+1269 MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(CommandBehavior Behavior)+2528MySql.Data。 Entity.EFMySqlCommand.ExecuteDbDataReader(CommandBehaviorの動作)+22。。。
私は次のコードを持っています:
モデル:
[Table("pagina")]
public class pagina
{
[Key]
public long nCdPagina { get; set; }
public long nCdVisitante { get; set; }
public string sDsUrlReferencia { get; set; }
public string sDsPalavraChave { get; set; }
public string sDsTitulo { get; set; }
[ForeignKey("nCdVisitante")]
public visitante visitante { get; set; }
}
public class retorno
{
public long Key { get; set; }
public int Online { get; set; }
}
[Table("site")]
public class site
{
[Key]
public long nCdSite { get; set; }
public string sDsTitulo { get; set; }
public string sDsUrl { get; set; }
public DateTime tDtCadastro { get; set; }
}
[Table("visitante")]
public class visitante
{
[Key]
public long nCdVisitante { get; set; }
public long nCdSite { get; set; }
public string sDsIp { get; set; }
public DateTime tDtCadastro { get; set; }
public DateTime tDtAtualizacao { get; set; }
[ForeignKey("nCdSite")]
public site site { get; set; }
}
クエリ:
return (from pag in this.context.pagina.Include("visitante").Include("site")
group pag by pag.visitante.nCdSite into g
select new retorno
{
Key = g.Key,
Online = g.Select(e => e.visitante.sDsIp).Distinct().Count()
}).ToList<retorno>();
問題が発生するのは、を配置したときだけDistinct()
です。Count()
言うまでもなく完璧に機能します。