我是.NET新手,目前正在通过this tutorial学习ASP.NET Core MVC。
我的开发环境:
因此,我使用yo aspnet
创建了一个新项目,并选择了Web Application
,其中包括基于个人用户帐户的身份验证。在本教程中,我现在处于“创建您的模型”部分,并对如何继续感到困惑。
具体来说,教程要求您创建的模型如下所示:
模型/ Model.cs :
using Microsoft.EntityFrameworkCore;
using System.Collections.Generic;
namespace EFGetStarted.AspNetCore.NewDb.Models
{
public class BloggingContext : DbContext
{
public BloggingContext(DbContextOptions<BloggingContext> options)
: base(options)
{ }
public DbSet<Blog> Blogs { get; set; }
public DbSet<Post> Posts { get; set; }
}
public class Blog
{
public int BlogId { get; set; }
public string Url { get; set; }
public List<Post> Posts { get; set; }
}
public class Post
{
public int PostId { get; set; }
public string Title { get; set; }
public string Content { get; set; }
public int BlogId { get; set; }
public Blog Blog { get; set; }
}
}
然而,在该页面上,有一个警告:
如果使用“个人用户帐户”而不是“无”进行身份验证 然后,实体框架模型将添加到您的项目中 型号\ IdentityModel.cs。使用您将学习的技术 通过演练,您可以选择添加第二个模型,或者扩展它 包含实体类的现有模型。
当我找不到他们引用的文件Models / IdentityModel.cs时,我的困惑就开始了。我确实看到 Models / ApplicationUser.cs ,如下所示:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Identity.EntityFrameworkCore;
namespace EFGetStarted.AspNetCore.NewDb.Models
{
// Add profile data for application users by adding properties to the ApplicationUser class
public class ApplicationUser : IdentityUser
{
}
}
...和 Data / ApplicationDBContext.cs ,如下所示:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Identity.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore;
using EFGetStarted.AspNetCore.NewDb.Models;
namespace EFGetStarted.AspNetCore.NewDb.Data
{
public class ApplicationDbContext : IdentityDbContext<ApplicationUser>
{
public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
: base(options)
{
}
protected override void OnModelCreating(ModelBuilder builder)
{
base.OnModelCreating(builder);
// Customize the ASP.NET Identity model and override the defaults if needed.
// For example, you can rename the ASP.NET Identity table names and more.
// Add your customizations after calling base.OnModelCreating(builder);
}
}
}
上面的警告信息让我对如何继续感到困惑。由于Models / IdentityModel.cs不存在,我是否将Model.cs的内容放入Models / ApplicationUser.cs或Data / ApplicationDBContext.cs中,还是按原样保留所有内容?
答案 0 :(得分:2)
我找不到他们引用的文件,Models / IdentityModel.cs。
generator-aspnet
使用different version of templates而不是Visual C# Web Template shipped with Visual Studio 2015。
文件Models/IdentityModel.cs
应包含类ApplicationUser
和ApplicationDbContext
。它们与generator-aspnet
使用的版本相同。
我将Model.cs的内容放入Models / ApplicationUser.cs或 Data / ApplicationDBContext.cs或者我按原样保留所有内容
您可以保持原样 - 这些文件位于何处并不重要。
答案 1 :(得分:0)
您可能选择了“不进行身份验证”,这就是为什么您没有“ Models / IdentityModel.cs”文件的原因
答案 2 :(得分:-1)
警告适用于您选择无身份验证以外的身份验证方法。
如果您选择个人用户帐户,将为使用数据库创建新的Entity Framwork模型。
您可能选择了“无身份验证”,这就是您没有“Models/IdentityModel.cs
”文件的原因