1

我在 GridView 中单击一个按钮来填充所有事务数据。但是,数据库中的 Transaction 表不包含 Dimension 表(例如 Account 表)数据,例如 Transaction 表包含 AccountID 但它没有我必须从 Account 表中带来的 AccountName 属性。在 DataAccess 层中,方法 (GetAllTransactions()) 确实包含 AccountID 上的 Transaction 和 Account 表之间的连接,但是当我尝试选择 account.AccountName 时它不起作用。

我只需要从 Transaction 表中显示 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 中填充来自多个表的数据。谢谢。

4

1 回答 1

0

由于我的交易模型没有 Account 表的任何属性,我必须创建一个 ViewModel 类型类,它为每个交易返回 AccountNumber 的自定义数据。

我用来解决问题的代码是这个

于 2013-02-12T22:00:15.577 回答