[英]Join two tables in crystal report Entity Framework c#
我有两个表Estate和EstateType。 但是我不知道如何编写适当的LINQ查询以使其成为水晶报表的数据源。
Agency_Kursovaya_v5Entities AgencyContext= new Agency_Kursovaya_v5Entities();
public EstateReportForm()
{
InitializeComponent();
AgencyContext = new Agency_Kursovaya_v5Entities();
//var a = AgencyContext.Estate.GroupJoin()
//AgencyContext.Estate.Join(AgencyContext.EstateType.Where())
//ObjectSet<Estate> estates = new Estate();
//ObjectSet<EstateType> estateTypes = new AgencyContext.EstateType;
AgencyContext.Estate.Where(id => id.EstateID > 0).ToArray();
AgencyContext.EstateType.Where(etId => etId.EstateID > 0).ToArray();
}
private void EstateReportForm_Load(object sender, EventArgs e)
{
}
private void crystalReportViewer1_Load(object sender, EventArgs e)
{
//var estJoin = (from est in AgencyContext.Estate join eType in AgencyContext.EstateType on est.EstateID equals eType.EstateID where est.EstateID == eType.EstateID select est).ToArray();
//var clByEst =
// (from c in AgencyContext.Client
// join esT in AgencyContext.Estate on c.ClientID equals esT.ClientID
// select c.ClientName).ToArray();
EstateDataSet estateDataSet =new EstateDataSet();
BindingSource bindingSource = new BindingSource();
bindingSource.DataSource = estateDataSet;
EstateCrystalReport estateCrystalReport1 = new EstateCrystalReport();
crystalReportViewer1.ReportSource = estateCrystalReport1;
crystalReportViewer1.Refresh();
}
如果您正在使用CrystalReports和多个表中的数据,则将在报表中执行联接(请参阅报表设计器中的Database Expert... -> Links
)。 您可以这样设置报表数据源:
var est = AgencyContext.Estate.Where(...).ToArray();
var etype = AgencyContext.EstateType.Where(...).ToArray();
// You might have to enter debug mode to determine the correct Table indicies
estateCrystalReport1.Database.Tables[0].SetDataSource(est);
estateCrystalReport1.Database.Tables[1].SetDataSource(etype);
您可以在此处引用StackOverflow答案。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.