良い一日、
私のプログラムは私に多くの問題を引き起こしています。突然エラーが発生します:
列名 'UserProfile_UserId' が無効です。
このコードの場合:
public ActionResult Index()
{
---> var model = _db.Roles.ToList();
return View(model);
これは理にかなっています。しかし、問題は、ユーザー プロファイル クラスを使用していないことです。Roles クラスを使用しています。
これが私のコントローラーです:
FSKDb _db = new FSKDb();
//
// GET: /Roles/
public ActionResult Index()
{
var model = _db.Roles.ToList();
return View(model);
}
ここに私のDBクラスがあります:
namespace Attempt3.Models
{
public class FSKDb : DbContext
{
public FSKDb() : base("name=DefaultConnection")
{
}
public DbSet<UserProfile> UserProfiles { get; set; }
public DbSet<Roles> Roles { get; set; }
}
}
役割クラス:
[Table("webpages_Roles")]
public class Roles
{
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int RoleId { get; set; }
public string RoleName { get; set; }
public string Description { get; set; }
}
UserProfile クラス
[Table("UserProfile")]
public class UserProfile
{
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int UserId { get; set; }
public string UserName { get; set; }
public string Surname { get; set; }
public string ClientCode { get; set; }
public ICollection<Roles> UserRoles { get; set; }
}
コントローラでロールを見つけようとすると、EF が User Profiles_UserID を探しようとしている理由がわかりません
ロールではなくユーザーを探している場合にのみ、それを探す必要があります。それでも、UserProfile UserId列名は「UserId」であり、「UserProfile_UserId」ではありません
ありがとう