我正在建立所有银行帐户及其对应交易的列表,以供用户根据他们所在的“家庭”查看。我可以很好地获得帐户列表,但是却很难获取交易。
var model = new DashboardViewModel();
var user = db.Users.Find(User.Identity.GetUserId());
var houseAccounts = db.BankAccounts.Where
(b => b.HouseholdId == user.MyHouseId).ToList();
model.BankAccounts = houseAccounts;
model.Transactions = db.Transactions.Where
(t => t.BankAccountsId == houseAccounts.Id);
在houseAccounts.Id
,我收到一条错误消息,指出“列表不包含'Id'的定义...”
为每个BankAccount分配一个HouseholdId,为每个交易分配一个BankAccountsId。我的数据库中的所有对象都有一个由我创建的类创建的ID号。我怎么能在这里买到它?
答案 0 :(得分:0)
在houseAccounts.Id处,我收到一条错误消息,指出“列表不包含'Id'的定义...”
houseAccounts是BankAccounts的列表,并且List没有ID。 实际上,列表中的每个对象(在本例中为BankAccout)都有一个ID。
因此,如果您希望从houseAccounts获得ID,则可以执行以下操作:
var houseAccountIdList = houseAccounts.Select(it => it.Id);
使用ID列表,您可以像这样进行交易:
model.Transactions = db.Transactions.Where(it => houseAccountIdList.contains(it.BankAccountsId));
答案 1 :(得分:0)
类型houseAccounts
是BankAccount的列表,除非引用了列表中的某个项目,否则您肯定无法从中获取属性Id
。请尝试以下:
foreach (var account in houseAccounts){
//Retrieve and add transactions based on each individual list-item id
model.Transactions.Add(db.Transactions.Where (t => t.BankAccountsId == account.Id));
}