Имею в БД отношение «многие ко многим» между 2 таблицами. И я сначала использую EF Code из Db.
Таблица Жанры :
public partial class Genres
{
public Genres()
{
Post = new HashSet<Post>();
}
public int GenresID { get; set; }
[StringLength(90)]
public string GenresName { get; set; }
[StringLength(128)]
public string GenresSlug { get; set; }
[StringLength(200)]
public string GenresDescription { get; set; }
public virtual ICollection<Post> Post { get; set; }
}
Таблица Пост :
public partial class Post
{
public Post()
{
Genres = new HashSet<Genres>();
}
public int PostID { get; set; }
[Display(Name = "Title")]
[Required]
[StringLength(150)]
public string Name { get; set; }
[AllowHtml]
[Display(Name = "Description")]
[Column(TypeName = "text")]
public string Description { get; set; }
[Display(Name = "Publish Date")]
public DateTime PublishDate { get; set; }
[Display(Name = "Genres")]
[Required]
[StringLength(200)]
public string GenresList { get; set; }
public virtual ICollection<Genres> Genres { get; set; }
}
Теперь у меня есть на самом деле Два вопроса :
1- Как удалить значения из таблицы GenresPost, которая создается из этого отношения? Только из GenresPost Я не хочу удалять свое сообщение или влиять на него.
2-В моей Жанрах Таблица Когда я добавляю новое сообщение, я получаю жанры из текстового поля, например:
Drama, Romance, Shoujo
и затем я разделяю их и добавляю, но они продолжают повторяться в базе данных, и мне нужно, чтобы они были уникальными, поэтому, когда я добавляю, например, драму, и добавляю ее снова в другой пост, я хочу проверить, существует ли она так мне не нужно добавлять его снова ... и вот мой код для этого, но он не сработал у меня:
post.GenresList содержит такие жанры, как этот (Драма, Романс, Сёдзё)
if (post.GenresList != null)
{
Collection<Genres> GenresPost = new Collection<Genres>();
var s = post.GenresList.ToString();
string[] newGenres = s.Split(',');
foreach (var val in newGenres)
{
var iTag = db.Genres.FirstOrDefault(t => t.GenresName == val);
if (iTag == null && val.Length > 1)
{
iTag = new Genres
{
GenresName = val.Trim(),
GenresSlug = val.MakeUrlFriendly2(),
};
db.Genres.Add(iTag);
}
GenresPost.Add(iTag);
}
post.Genres = GenresPost;
}