我不知道这是EF核心问题还是Asp.Net Core 2问题。我只是想知道为什么我必须在此示例的视图(HelloNurse)的视图中引用我的Models目录。
我正在使用.Net Core 2.2。我还在单独的配置文件中使用Fluent API。最后,我使用了两个DbContexts
。一个用于标识,EfficacyDbContext
用于我的数据。哦。我也在使用Areas。
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>
我只是认为当我已经将DbContext
传递给视图时,引用我的Models目录有点冗长。我想念什么吗?
答案 0 :(得分:0)
而不是:
@using Efficacy.Models.Entities
@model IEnumerable<HelloNurse>
只需在类型声明中添加完全限定的名称空间:
@model IEnumerable<Efficacy.Models.Entities.HelloNurse>
视图需要知道模型的“类型”,为此,我们需要为它提供一个完全限定的名称空间。