我正在研究现有的解决方案。当我有两个实体,如如何获得在LINQ中使用连接的项目列表?
public class User
{
public int Id { get; set; }
public string Name { get; set; }
public string Email { get; set; }
public DateTime? DOB { get; set; }
private List<long> _accounts = new List<long>();
[Display(Name = "Account No")]
public List<long> Accounts
{
get { return _accounts; }
set { _accounts = value; }
}
[Display(Name = "Account No")]
public string AccountId
{
get { return string.Join(",", _accounts); }
set { _accounts = value != null ? value.Split(',').Where(s=>!string.IsNullOrWhiteSpace(s)).Select(s => Convert.ToInt64(s.Trim())).ToList() : new List<long>(); }
}
}
public class Account
{
public long Id { get; set; }
public string AccountName { get; set; }
public string AccountNo { get; set; }
}
,也有一个ViewModel
public class UserAccountViewModel
{
public long AccountId { get; set; }
public string AccountNo { get; set; }
public int UserId { get; set; }
public string UserName { get; set; }
}
现在,我怎样才能从这些实体List<UserAccountViewModel>
?
你不能。你需要在AccountId和UserId之间有一个映射。你可以有5个用户和10个账户,你不知道哪个用户拥有每个账户。 – jdweng
有几个问题。你为什么不把账户实体映射到用户实体?其次,如果用户可以拥有多个帐户,为什么UserAccountViewModel不包含帐户列表? – Saket
你需要在'帐户'实体和'用户'实体之间有关系 - 它似乎需要'ICollection'在它们之间进行映射。此外,它可能需要'UserAccountViewModel'中的'List Accounts'来存放多个帐户。 –