Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 正在尝试获取Id的列表';来自MVC控制器中的对象列表的_C#_Linq_Model View Controller - Fatal编程技术网

C# 正在尝试获取Id的列表';来自MVC控制器中的对象列表的

C# 正在尝试获取Id的列表';来自MVC控制器中的对象列表的,c#,linq,model-view-controller,C#,Linq,Model View Controller,我正在建立一个所有银行账户及其对应交易的列表,以便用户根据他们所处的“家庭”情况查看。我可以很好地获得帐户列表,但是我在获取交易时遇到了麻烦 var model = new DashboardViewModel(); var user = db.Users.Find(User.Identity.GetUserId()); var houseAccounts = db.BankAccounts.Where (b => b.HouseholdId == user.MyHouseId)

我正在建立一个所有银行账户及其对应交易的列表,以便用户根据他们所处的“家庭”情况查看。我可以很好地获得帐户列表,但是我在获取交易时遇到了麻烦

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);
在houseCounts.Id中,我收到一个错误,指出“列表不包含'Id'的定义…”

每个银行账户分配一个HouseholdId,每个交易分配一个BankAccountsId。我数据库中的所有对象都有一个由我构建的类创建的Id号。我怎么才能把它拿到这里来

在houseCounts.Id中,我得到一个错误,指出“列表不包含'Id'的定义…”

HouseCounts是银行账户列表,列表中没有Id。 实际上,列表中的每个对象(本例中为BankAccout)都有一个Id

因此,如果您想从HouseCounts获得ID,可以执行以下操作:

var houseAccountIdList = houseAccounts.Select(it => it.Id);
有了Id列表,您可以获得如下交易:

model.Transactions = db.Transactions.Where(it => houseAccountIdList.contains(it.BankAccountsId));

类型
houseCounts
是银行账户列表,除非您引用列表中的项目,否则您肯定无法从中获取属性
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));
  }