我来自Ruby on Rails背景,并且是Linq的新手。使用这种方法很容易与我的大多数模型建立Has-Many关系:
public class Person
{
[Column(IsPrimaryKey = true, AutoSync = AutoSync.OnInsert, DbType = "Int NOT NULL", IsDbGenerated = true)]
public int ID;
[Column]
public string Name;
[Association(Storage = "Carts", ThisKey = "CartID")] // Let's assume this exists
public EntitySet<Cart> Items
{
get { return this._Carts; }
set { this._Carts.Assign(value); }
}
private EntitySet<Cart> _Carts = new EntitySet<Cart>();
}
这就是让我做的事情:
foreach (Cart cart in person.carts)
{
// Do stuff...
}
但是,让我们说Cart
可以访问另一个名为Items
的实体集,目前我不得不这样做:
foreach (Cart cart in person.carts)
{
foreach (Item item in cart.items)
{
// Do stuff
}
}
可以/如何设置Cart
以便我可以执行此操作:
foreach (Item item in person.carts.items)
{
// Do stuff
}
答案 0 :(得分:9)
使用SelectMany
展平一系列序列:
foreach (Item item in person.carts.SelectMany(cart => cart.items))
{
}