У вас должен быть другой класс Entity (вероятно, должен быть внутренним), который отражает вашу таблицу AllowedForums в базе данных. Теперь я предполагаю, что ваша таблица пользователей и таблица форумов имеют отношения PK / FK к этой таблице AllowedForums. Следовательно, в классе User должно быть внутреннее свойство, которое выглядит следующим образом:
internal EntitySet<AllowedForums> AllowedForumsRelationships
{
get;set;
}
Или что-то в этом роде. Это должно быть как в классе пользователя, так и на форуме. Ваш класс AllowedForums будет иметь два свойства. Один для пользователя и один для форума. (Если вы используете конструктор LINQ to SQL, все это произойдет автоматически).
Если у вас есть это, если вы хотите получить все разрешенные форумы для пользователя, вы можете сделать что-то вроде этого:
public IList<Forum> AllowedForums
{
get
{
var result = new List<Forum>();
foreach(var relationShip in this.AllowedForumsRelationships)
{
result.Add(relationShip.Forum);
return result;
}
}
}
Это какой-то грубый код, который я только что опубликовал, и я не уверен, что он на 100% точен, но я думаю, вы поймете эту идею. По сути, вы имеете дело со многими отношениями, которые всегда являются болью.
РЕДАКТИРОВАТЬ: Я только что связался с этой идеей с базой данных Northwind с этими таблицами:
Заказы
Информация для заказа
Продукты
Здесь существует отношение многих ко многим: заказ может иметь несколько продуктов, а продукт может принадлежать многим заказам. Теперь скажите, что хотите получить все товары для заказа:
public partial class Order
{
public IList<Product> Products
{
get
{
var list = new List<Product>();
foreach (var item in this.Order_Details)
{
list.Add(item.Product);
}
return list;
}
}
}
Это работает, поэтому должно работать и в сценарии, о котором вы говорите.