Моя настройка
У меня есть два класса, показанные здесь, разделенные до того, что необходимо в этом примере:
public class Photo : Entity
{
[Key]
public int Id { get; set; }
public virtual ICollection<Tag> Tags { get; set; }
public Photo()
{
Tags = new List<Tag>();
}
}
public class Tag : Entity
{
[Key]
public string Text { get; set; }
public virtual ICollection<Photo> Photos { get; set; }
public Tag()
{
Photos = new List<Photo>();
}
}
Как показано выше, существует отношение «многие ко многим» между двумя сущностями.
Сначала я использую код EF 4.1.
Пример:
- " photo1 " имеет " tag1 ", " tag2 " и " tag3 " в свойстве тегов навигации.
- " photo2 " имеет " tag2 ", " tag3 " и " tag4 " в свойстве тегов навигации.
- " photo3 " имеет " tag2 " и " tag4 " в свойстве тегов навигации.
Общее количество тегов на всех фотографиях:
- "tag1": 1
- "tag2": 3
- "tag3": 2
- "tag4": 2
- Всего тегов: 8
Примечание
Моя конечная цель - это облако тегов, но с использованием MVC3:
http://www.geekzilla.co.uk/View960C74AE-D01B-428E-BCF3-E57B85D5A308.htm
Первый вопрос
Как мне (используя EF) узнать, сколько раз используется наиболее часто используемый тег (ы) (находя количество « tag2 »)?
И то же самое для наименее используемых тегов (количество « tag1 » в приведенном выше примере).
В ссылке выше используются следующие строки кода:
double.TryParse(tagData.Compute("min(count)", null).ToString(), out min);
double.TryParse(tagData.Compute("max(count)", null).ToString(), out max);
Что такое эквивалент EF / LINQ?
Второй вопрос
Как получить счетчик для каждого тега или счетчик для 50 наиболее часто используемых тегов?