我在GridView中单击一次按钮时填充所有交易数据。但是,数据库中的Transaction表不包含Dimension表(例如Account表)数据,例如Transaction表包含AccountID,但它没有AccountName属性,我必须从Account表中获取该属性。在DataAccess层中,方法(GetAllTransactions())确实包含AccountID上的Transaction和Account表之间的连接,但是当我尝试选择account.AccountName时,它不起作用。
我只需要在TransactionID中显示几个表,其中AccountID可以在其中显示,并在Transaction表中显示AccountName列而不是AccountID。
DataAccess方法如下所示:
public static IEnumerable<Transaction>GetAllTransactions()
{
List<Transaction> allTransactions = new List<Transaction>();
using (var context = new CostReportEntities())
{
allTransactions = (from t in context.Transactions
join account in context.Accounts on t.AccountID equals account.AccountID
select t).ToList();
}
return allTransactions;
}
和.aspx页面背后的代码如下:
protected void _UIButtonSubmit_Click(object sender, EventArgs e)
{
IEnumerable<Transaction> transactions = ts.GetAllTransactions();
_UITransactionGridView.DataSource = transactions;
_UITransactionGridView.DataBind();
_UITransactionGridView.PageIndex = 0;
}
尝试了以下几点,但我没有得到LINQ的想法。以下是错误。
...select new {t.*, account.AccountName}).ToList();
我需要一个方向,我应该考虑使任务工作从一个GridView中的多个表填充数据。谢谢。
答案 0 :(得分:0)
由于我的Model for Transaction没有Account表的任何属性,我必须创建一个ViewModel类型类,它为每个Transaction返回AccountNumber的自定义数据。
我用来解决问题的代码是this