2017-04-12 7 views
0

Ich bin verwirrt wegen der Abfrage, die verschiedene Daten für nur eine Spalte zurückgibt, wenn eine unformatierte SQL-Abfrage von Entity Framework (siehe Screenshot unten) verwendet.EF Core Raw SQL (FromSql) -Abfrage, die falsche Daten zurückgibt?

Das korrekte Ergebnis ist natürlich das, das ich bekomme, wenn ich die Datenbank direkt von SQL Server abfrage.

Sicher, ich führe genau die gleiche Abfrage, in der gleichen Datenbank und auf dem gleichen Server. Und ich suche nach den gleichen Spalten.

enter image description here

EDIT: Hier ist die LigneFacture Klasse:

public class LigneFacture 
{ 
    [Required] 
    public string Entite { get; set; } 
    public decimal NumFacture { get; set; } 
    [Required] 
    [StringLength(2)] 
    public string TypeTransaction { get; set; } 
    [Required] 
    public DateTime DateFacture { get; set; } 
    [StringLength(10)] 
    public string CodeClient { get; set; } 
    [StringLength(100)] 
    public string NomClient { get; set; } 
    [Required] 
    [StringLength(10)] 
    public string CodeProduit { get; set; } 
    [StringLength(150)] 
    public string NomProduit { get; set; } 
    [StringLength(10)] 
    public string CodeLabo{ get; set; } 
    [StringLength(150)] 
    public string Laboratoire { get; set; } 
    [Required] 
    [StringLength(25)] 
    public string Numlot { get; set; } 
    public DateTime Peremption { get; set; } 
    public decimal Quantite { get; set; } 
    public decimal ValeurHt { get; set; } 
    public decimal ValeurRz { get; set; } 
    public decimal ValeurTva { get; set; } 
    public decimal PuAchat { get; set; } 
    public decimal PuPpa { get; set; } 
    public decimal PuDemi { get; set; } 
    public decimal PuCess { get; set; } 

    //This field is causing the problem (it's declared as int in the database as well) 
    public int Ligne { get; set; } 

    public string HreString { get; set; } 
    public int AnneeTransaction { get; set; } 
    public int MoisTransaction { get; set; } 
    public decimal TauxRemise { get; set; } 
    public string Zone { get; set; } 
    public int Colis { get; set; } 

} 

Der Rest des Wertes ist genau das gleiche.

+0

Was ist 'LigneFacture' - eine falsche Entitätsklasse? Können wir es sehen? –

+0

Ja, es ist eine falsche Entitätsklasse. – iMad

+1

Was ist die PK dieser "Entität" (ich sehe sie nicht definiert)? –

Antwort

2

Wie Ivan Stoev darauf hingewiesen hat, scheint es sich um den Primärschlüssel der Entität zu handeln, die abgefragt wird.

Zwei Zeilen von drei haben nur einen anderen Spaltenwert, aber den gleichen Primärschlüssel, so scheint es, als ob der erste zweimal zurückgegeben wird.