【发布时间】:2020-02-13 15:54:59
【问题描述】:
我是 .net core 的新手,目前陷入非常奇怪和不熟悉的境地。 让我逐步解释我的问题:
第 1 步 首先我创建了基本模型
[Table("ApplicationUserRights", Schema = "Security")]
public class ApplicationUserRight
{
public Guid RoleId { get; set; }
public int MenuId { get; set; }
public int ClaimId { get; set; }
[ForeignKey("RoleId")]
public virtual ICollection<ApplicationRole> ApplicationRoles { get; set; }
[ForeignKey("MenuId")]
public virtual ICollection<ApplicationMenu> ApplicationMenus { get; set; }
[ForeignKey("ClaimId")]
public virtual ICollection<ApplicationClaim> ApplicationClaims { get; set; }
}
[Table("ApplicationClaim", Schema = "Security")]
public class ApplicationClaim
{
[Required]
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
[MaxLength(100)]
public string Claim { get; set; }
public int EnumValue { get; set; }
}
第 2 步
然后我创建了类似这样的数据库上下文。
public class ApplicationDbContext : IdentityDbContext<ApplicationUser, ApplicationRole, Guid,
ApplicationUserClaim, ApplicationUserRole, ApplicationUserLogin, ApplicationRoleClaim, ApplicationUserToken>
{
public ApplicationDbContext(DbContextOptions<ApplicationDbContext> options)
: base(options)
{
}
....
public DbSet<ApplicationClaim> ApplicationClaims { get; set; }
public DbSet<ApplicationUserRight> ApplicationUserRights { get; set; }
....
}
第 3 步:
在 startup.cs 中注册了该数据库上下文。
services.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlServer(
Configuration.GetConnectionString("DefaultConnection")));
services.AddDefaultIdentity<ApplicationUser>();
步骤:4
限定了数据库上下文将在其上工作的类。
...
services.AddScoped<IMiddlewareAuthorization, MiddlewareAuthorization>();
...
步骤:5 最后,当我尝试进行 linq 查询时,属性不会显示
public class MiddlewareAuthorization : IMiddlewareAuthorization
{
private readonly ApplicationDbContext db;
public MiddlewareAuthorization(ApplicationDbContext context)
{
db = context;
}
public IList<string> GetAuthorizedURLs()
{
var Urls = (from abc in db.ApplicationUserRights
join xyz in db.ApplicationClaims on abc.??? equals xyz.???);
return new List<string>();
}
}
这让我非常沮丧,因为我无法弄清楚问题的真正原因。
【问题讨论】:
标签: c# asp.net-core .net-core asp.net-core-mvc