c#-Linq查询返回记录列表,而不是显示单个记录
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c#-Linq查询返回记录列表,而不是显示单个记录,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3139字,纯文字阅读大概需要5分钟。
内容图文
![c#-Linq查询返回记录列表,而不是显示单个记录](/upload/InfoBanner/zyjiaocheng/686/b968f31f61044acaa3aa5c6d2d7019b9.jpg)
我试图发展银行系统.我试图将三个表的记录连接到单个表中.但是问题是当我编译它时,出现以下错误.
Error CS1929 ‘IOrderedQueryable<>’ does not contain
a definition for ‘Concat’ and the best extension method overload
‘ParallelEnumerable.Concat<>(ParallelQuery<>, IEnumerable<>)’ requires a
receiver of type ‘ParallelQuery<>
这是我的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 inOut = context.Current_Account_Deposit.Where(x => x.Account_Number == accountNumber).Select(w => new
{
w.Account_Number,
Deposit = (decimal?)null,
Withdrawal = (decimal?)w.Amount,
w.Date
}).Concat(context.Current_Account_Withdraw.Select(d => new
{
d.Account_Number,
Deposit = (decimal?)d.Amount,
Withdrawal = (decimal?)null,
d.Date
})).OrderBy(r => r.Date)
.Concat(context.Current_Account_Details.Select(e => new
{
//You should perform same anonymous type which you want to concat
Account_Number = e.Account_Number,
Deposit = (decimal?)e.Account_Balance,
Withdrawal = (decimal?)null,
e.Account_Fees
}));
var js = new System.Web.Script.Serialization.JavaScriptSerializer();
return js.Serialize(inOut); // return JSON string
}
}
}
这是DBContext类.
public partial class HalifaxDatabaseEntities : DbContext
{
public HalifaxDatabaseEntities()
: base("name=HalifaxDatabaseEntities")
{
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
throw new UnintentionalCodeFirstException();
}
public virtual DbSet<Web_User_login> Web_User_login { get; set; }
public virtual DbSet<USER> USERS { get; set; }
public virtual DbSet<tblUser> tblUsers { get; set; }
public virtual DbSet<Current_Account_Holder_Details> Current_Account_Holder_Details { get; set; }
public virtual DbSet<Current_Account_Details> Current_Account_Details { get; set; }
public virtual DbSet<Current_Account_Deposit> Current_Account_Deposit { get; set; }
public virtual DbSet<Current_Account_Withdraw> Current_Account_Withdraw { get; set; }
}
这是模型类..
这是数据库记录
这是我期望的结果,当我单击帐号时,它应该显示特定记录
解决方法:
您只能在本地Concat.尝试在每个Concat之前添加.ToList(),以便在连接之前在本地实现记录.
注意:您的Where子句仅适用于Current_Account_Deposit.提取和详细信息将返回所有记录.
尝试生成3个基本上下文查询.每个表一个,并使用ToList()完成每个表.稍后,使用Concat将所有3个列表连接为一个列表.
这将使您理解概念,并可以从这里继续前进.
var q1 = context.Current_Account_Deposit.Where(x => x.Account_Number == accountNumber).Select(w => new
{
w.Account_Number,
Deposit = (decimal?)null,
Withdrawal = (decimal?)w.Amount,
w.Date
}).ToList();
var q2 = context.Current_Account_Withdraw.Select(d => new
{
d.Account_Number,
Deposit = (decimal?)d.Amount,
Withdrawal = (decimal?)null,
d.Date
}).OrderBy(r => r.Date).ToList();
var q3 = context.Current_Account_Details.Select(e => new
{
//You should perform same anonymous type which you want to concat
Account_Number = e.Account_Number,
Deposit = (decimal?)e.Account_Balance,
Withdrawal = (decimal?)null,
e.Account_Fees
}).ToList();
var inOut = q1.Concat(q2).Concat(q3).ToList();
您可能需要向q2和Q3添加相同的Where子句.我不确定你是否想要那样.
内容总结
以上是互联网集市为您收集整理的c#-Linq查询返回记录列表,而不是显示单个记录全部内容,希望文章能够帮你解决c#-Linq查询返回记录列表,而不是显示单个记录所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。