Я не знаю, является ли это вопросом EF Core или Asp.Net Core 2. Мне просто интересно, почему я должен ссылаться на мой каталог Models в представлении для этого примера (HelloNurse).
Я использую .Net Core 2.2. Я также использую Fluent API в отдельных файлах конфигурации. Наконец, я использую два DbContexts
. Один для идентификации и EfficacyDbContext
для моих данных. Ой. Я также использую Области.
DbContext
namespace Efficacy.Data
{
public class EfficacyDBContext : DbContext
{
public virtual DbSet<Contact> Contact { get; protected set; }
public virtual DbSet<ContactType> ContactType { get; protected set; }
public virtual DbSet<HelloNurse> HelloNurse { get; protected set; }
public EfficacyDBContext(DbContextOptions options) : base(options)
{
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.ApplyConfiguration(new ContactEntityTypeConfiguration());
modelBuilder.ApplyConfiguration(new ContactTypeEntityTypeConfiguration());
}
}
}
Модель
namespace Efficacy.Models.Entities
{
public class HelloNurse
{
public int Id { get; set; }
public string Hello { get; set; }
public string Nurse { get; set; }
}
}
Контроллер
namespace Efficacy.Areas.Ops.Controllers
{
public class HelloNurseController : Controller
{
private readonly EfficacyDBContext _db;
public HelloNurseController(EfficacyDBContext db)
{
_db = db;
}
public async Task<IActionResult> Index()
{
return View(await _db.HelloNurse.ToListAsync());
}
}
}
Посмотреть
@using Efficacy.Models.Entities @* <-Why do I have to include this reference?*@
@model IEnumerable<HelloNurse>
@{
ViewData["Title"] = "Index";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<h1>Index</h1>
Я просто считаю немного многословным ссылаться на мой каталог Models, когда я уже передаю DbContext
представлению. Я что-то упустил?