Entity framework core EF核心原始SQL(FromSql)查询返回不正确的数据?

Entity framework core EF核心原始SQL(FromSql)查询返回不正确的数据?,entity-framework-core,sql-server-2016,Entity Framework Core,Sql Server 2016,我很困惑,因为当使用实体框架中的原始SQL查询时,查询只为一列返回不同的数据(请参见下面的屏幕截图) 正确的结果当然就是我直接从SQL Server查询数据库时得到的结果 当然,我在同一数据库和同一服务器上执行完全相同的查询。我在找同样的专栏 编辑: 以下是LigneFacture类: public class LigneFacture { [Required] public string Entite { get; set; } public decimal

我很困惑,因为当使用实体框架中的原始SQL查询时,查询只为一列返回不同的数据(请参见下面的屏幕截图)

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

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

编辑: 以下是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; }

}

其余的值完全相同。

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


三行中有两行只有一个不同的列值,但主键完全相同,因此第一行似乎返回了两次。

正如Ivan Stoev指出的,它似乎与所查询实体的主键相关


三行中有两行只有一个不同的列值,但主键完全相同,因此第一行似乎返回了两次。

什么是
LigneFacture
-假实体类?我们能看到它吗?是的,它是一个假的实体类。那个“实体”的主键是什么(我没有看到它被定义)?当映射到db视图时,它对于所有EF版本都是典型的。您必须定义一些伪PK(rownumber或composte,包括一个或多个列,其组合在结果集中是唯一的)。是的,我认为它会根据实体定义的PK创建一个索引,然后根据该索引进行查询(具有相同PK的所有行都与该索引相关)。感谢您的帮助,我将添加一个答案。什么是
LigneFacture
——一个伪实体类?我们能看到它吗?是的,它是一个假的实体类。那个“实体”的主键是什么(我没有看到它被定义)?当映射到db视图时,它对于所有EF版本都是典型的。您必须定义一些伪PK(rownumber或composte,包括一个或多个列,其组合在结果集中是唯一的)。是的,我认为它会根据实体定义的PK创建一个索引,然后根据该索引进行查询(具有相同PK的所有行都与该索引相关)。谢谢你的帮助,我会补充一个答案。