Можете ли вы сделать сценарий «многие ко многим» более динамичным? - PullRequest
0 голосов
/ 11 октября 2011

Это просто мой простой способ создания отношений «многие ко многим», но я хотел бы что-то, что облегчает создание многих для многих, я хотел бы сделать метод, возвращающий тип, анонимный, который откроет некоторые двери. Но я не очень хорош с анонимными типами, все же!

Надеюсь, вы можете помочь!

Что вы, ребята, делаете, когда вам нужно

private class Ids
{
    public int Id;
}

.

...

. И в некотором методе:

IList<Ids> objIds = new List<Ids>();

var q = from c in dt.FK_Tags_Blogs
        where c.BlogId == someId
        select c.TagId;

foreach (var item in q)
{
    objIds.Add(new Ids { Id = item });
}

var w = from c in objIds
        join p in dt.Tags on c.Id equals p.Id
        select p;

Дэвид Б: Я использовал ваш код так:

    public static IQueryable<Tag> printTags(int id)
{
    DataClassesDataContext dt = new DataClassesDataContext();

     return 
      from b in dt.Blogs
      where b.Id == id
      from xr in b.FK_Tags_Blogs
      select xr.Tag;
}

Это глупо?

1 Ответ

0 голосов
/ 11 октября 2011

Что я делаю, это:

  //linq to objects
IEnumerable<Tag> tags = 
  from c in dt.FK_Tags_Blogs
  where c.BlogId == someId
  join p in dt.Tags on c.TagId equals p.Id
  select p;


  //linq to sql with association properties
IQueryable<Tag> tagsQuery =
  from b in dc.Blogs
  where b.BlogId == someId
  from xr in b.FK_Tags_Blogs
  select xr.Tag;
...