[c#]Linq 输出乘法结果

发布时间: 2017/2/25 3:55:05
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我有这样一个简单的 SQL 查询︰

SELECT table1.[idGK]  , table2.FullName , table2.LgotName
 from table2
 join table1 on table2.C_LGT = table1.[idGK] 
where table1.mcod = 41003 

还有这右输出︰

idGK | FullName| LgotName 
------------------------                           
1    |One      |Ball                             
2    |Two      |Wog                           
3    |Three    |Aks  
5    |Four     |Mqi                             
7    |Five     |Thel                           
9    |Six      |Imx  

但当我让 LINQ 的查询︰

IEnumerable<FinalDoc> fidn = from post in repository.table1
join thir in repository.table2 on post.idGK equals thir.C_LGT
where  post.mcod.Trim().Contains("41003")

orderby post.idGK

select new FinalDoc
  {
     mcod = post.mcod,
    FullName= thir.FullName,
     idGK = post.idGK
 }; 

我有这样的结果︰

    FullName  | LgotName 
    ------------------------                           
    Five      |Thel                             
    Five      |Thel                            
    Five      |Thel  
    Five      |Thel                              
    Five      |Thel                            
    Five      |Thel 

我试着改变表 1 和表 2,使右连接却相同的结果。
什么我需要做些相同的 linq 查询结果在 SQl 中吗?
另外,各位 EF,Linq,Asp.net 中,Web 窗体

解决方法 1:

我解决这个问题,但答案很简单︰
我的问题是,我没有将添加到我类定义主键行,因为我对这一结果。
我的表中没有主键,和我添加 id 行,因为 EF 需要主键,并且如果您没有添加它们,EF 将做这工作你 (和采取第一行)。在我的例子我添加 idG 行︰

[Key]
    public int idG {get;set;}
    public int idGK { get; set; }
    public string mcod { get; set; }
官方微信
官方QQ群
31647020