Как исправить ошибку FirstOr Default в EF Core и как сопоставить выбранные теги с BlogPost в ASP.Net, почему find возвраC#

Место общения программистов C#
Ответить
Anonymous
 Как исправить ошибку FirstOr Default в EF Core и как сопоставить выбранные теги с BlogPost в ASP.Net, почему find возвра

Сообщение Anonymous »

namespace Bloggie.Web.Controllers

{

public class AdminBlogPostsController : Controller

{

private readonly ITagRepository tagRepository;

private readonly IBlogPostsRepository blogRepository;

public AdminBlogPostsController(ITagRepository tagRepository, IBlogPostsRepository blogRepository)

{

this.tagRepository = tagRepository;

this. blogRepository = blogRepository;

}

public IBlogPostsRepository BlogRepository { get; }

\[HttpGet\]

public async Task\ Add()

{

var tags = await tagRepository.GetAllAsync();

//retriving all Names in Tag table

//many dropdown options

var Model = new AddBlogPostRequest

{

Tags = tags.Select(x =\> new SelectListItem { Text = x.Name, Value = x.Id.ToString() })

};

return View(Model);

}

\[HttpPost\]

public async Task\ Add(AddBlogPostRequest addBlogPostRequest)

{

//Map ViewModel to DomainModel

var blog = new BlogPost

{

Heading= addBlogPostRequest.Heading,

PageTitle= addBlogPostRequest.PageTitle,

Content= addBlogPostRequest.Content,

ShortDescription= addBlogPostRequest.ShortDescription,

FeaturedImageUrl= addBlogPostRequest.FeaturedImageUrl,

UrlHandle= addBlogPostRequest.UrlHandle,

PublishedDate= addBlogPostRequest.PublishedDate,

Author= addBlogPostRequest.Author,

Visible= addBlogPostRequest.Visible,

};

var selectedTags = new List\();

//Map tags from selected tags

foreach(var selectedtagsId in addBlogPostRequest.SelectedTags)

{

var selectedTagIdAsGuid = Guid.Parse(selectedtagsId);

//Fetch from database

var existingtag=await tagRepository.GetTagAsync(selectedTagIdAsGuid);

if (existingtag != null)

{

selectedTags.Add(existingtag);

}

}

//Mapping tags back to domainModel

blog.Tag = selectedTags;

await blogRepository.AddAsync(blog);

return RedirectToAction("Add");

}

}

}

using Microsoft.AspNetCore.Mvc.Rendering;
using static System.Runtime.InteropServices.JavaScript.JSType;

namespace Bloggie.Web.Models.ViewModels
{
public class AddBlogPostRequest
{
public string Heading { get; set; }
public string PageTitle { get; set; }
public string Content { get; set; }
public string ShortDescription { get; set; }
public string FeaturedImageUrl { get; set; }
public string UrlHandle { get; set; }
public DateTime PublishedDate { get; set; }
public string Author { get; set; }

public bool Visible { get; set; }

//IEnumerable → many items
// SelectListItem → okka option
// Together →
public IEnumerable Tags { get; set; }

//stores User selected values in this
public string[] SelectedTags { get; set; }=Array.Empty();
}
}

namespace Bloggie.Web.Models.Domain
{
public class Tag
{
public Guid Id { get; set; }
public string Name { get; set; }
public string DisplayName { get; set; }

public ICollection BlogPost { get; set; } //one tag can have multiple BlogPosts
}
}


Подробнее здесь: https://stackoverflow.com/questions/798 ... gs-to-blog
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»