EF核心Raw SQL(FromSql)查询返回错误数据?

时间:2017-04-12 09:06:37

标签: entity-framework-core sql-server-2016

我很困惑,因为查询在使用Entity Framework的原始SQL查询时只返回一列的不同数据(参见下面的屏幕截图)。

正确的结果当然是我直接从SQL Server查询数据库时得到的结果。

当然,我在同一个数据库和同一台服务器上执行完全相同的查询。我正在寻找相同的专栏。

enter image description here

修改 这是LigneFacture类:

    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; }

}

其余值完全相同。

1 个答案:

答案 0 :(得分:2)

正如Ivan Stoev所指出的,这似乎与被查询实体的主键有关。

三个中的两行只有一个不同的列值但是完全相同的主键,所以看起来第一个返回两次。