【发布时间】:2017-12-19 01:16:16
【问题描述】:
我正在尝试将三个 linq 查询加入到单个查询中,并将记录显示到一个有角度的 js 应用程序中。但问题是当我输入帐号并单击提交按钮时,它也显示重复记录。
这是 Linq 查询:
public string TranscationDetails(string Account_Number)
{
var accountNumber = int.Parse(Account_Number);//It could be better to use TryParse
using (HalifaxDatabaseEntities context = new HalifaxDatabaseEntities())
{
var CombinedQuery = (from x in context.Current_Account_Deposit
join y in context.Current_Account_Withdraw on x.Account_Number equals y.Account_Number
join z in context.Current_Account_Details on y.Account_Number equals z.Account_Number
where x.Account_Number == accountNumber
select new
{
x.Account_Number,
x.Amount,
Amount1 = y.Amount,
z.Account_Balance,
}).ToList();
var js = new System.Web.Script.Serialization.JavaScriptSerializer();
return js.Serialize(CombinedQuery); // return JSON string
}
}
有些人在这个链接上建议我.. http://www.advancesharp.com/blog/1108/linq-inner-join-left-outer-join-on-two-lists-in-c-with-example 这是数据库记录截图:
【问题讨论】:
-
因为您的
Current_Account_Withdraw有两条记录 15,三条记录 16。这就是连接的工作原理,它们是笛卡尔积。 -
我知道。我怎样才能避免它?
-
你想显示什么?如果您想要一天的总提款,您将 SUM() 列。您的屏幕截图看起来好像您的交易日期是某种类型的文本格式,而不是日期。您需要用您想要的结果更新问题,所显示的内容非常有意义。我希望在帐户和交易之间看到一对多的关系。
-
我想显示交易记录,避免现在显示的重复记录。你也是对的
标签: c# mysql angularjs sql-server linq