나는 웹 사이트에서 작업하고 있으며 데이터베이스를 만들기 위해 먼저 코드를 사용하고 있습니다. 내 비디오 클래스 : 당신은 내가 2 곳을 볼 수 있도록ASP.NET 웹 양식의 테이블 간의 관계
[ScaffoldColumn(false)]
public int VideoId { get; set; }
[Required,DisplayName("Session Title")]
public string Title { get; set; }
[Required, DisplayName("Description")]
public string Description { get; set; }
[Required, DisplayName("Video")]
public string Address { get; set; }
[ScaffoldColumn(false),DisplayName("Sent Date")]
public DateTime SentDate { get; set; }
[Required, DisplayName("Keywords")]
public string Keywords { get; set; }
[ScaffoldColumn(false), DisplayName("sLug")]
public string Slug { get; set; }
[ScaffoldColumn(false), DisplayName("Status")]
public bool Status { get; set; }
[Required,DisplayName("Image")]
public string Picture { get; set; }
//[Required,DisplayName("Rate")]
//public int Rate { get; set; }
[ScaffoldColumn(false)]
public Course Course { get; set; }
public VidUser User { get; set; }
: VidUser
은 (ASP.NET 신원에서 ASP.NET 신원 ApplicationUser
클래스를 사용) 내 사용자 클래스입니다 Course
및 VidUser
thees 속성은 내 수업입니다 . VidUser :
public string FullName { get; set; }
public string Email { get; set; }
public string Avatar { get; set; }
public string Website { get; set; }
public string Description { get; set; }
public virtual ICollection<Video> Videos { get; set; }
및 코스 클래스 :
[ScaffoldColumn(false)]
public int CourseId { get; set; }
public string Title { get; set; }
public string Description { get; set; }
public DateTime StartDate { get; set; }
public DateTime EndDate { get; set; }
public int SessionCount { get; set; }
public VidUser Teacher { get; set; }
public virtual ICollection<Video> Videos { get; set; }
내 질문에, 당신은 모든 사용자 (VidUser)를 알 방법 thees 테이블 사이의 관계에있다는 과정의 교사가 될 수 있고, 할 수있는 모든 과정은 한 교사가 그리고 상단에 쓴 다른 클래스들에 대해서도 마찬가지입니다. 그래서 난 비디오 정보를 얻을 필요가 어디에서 어떤하지만 난 null 참조 오류가있어 :
var db = new MyContext();
db.Videos.Where(v => v.Course.CourseId == 2).FirstOrDefault(); //This line returns null
또는 점점 사용자 이름 :
var db = new MyContext();
db.Videos.Where(v => v.User.UserName == "Admin").FirstOrDefault(); //This line returns null
을 내 종자 방법은 다음과 같습니다
#region Roles
var roleManager = new RoleManager<VidRole>(new RoleStore<VidRole>(context));
if (!roleManager.RoleExists("Admin"))
{
roleManager.Create(new VidRole("Admin","مدیر کل"));
}
if (!roleManager.RoleExists("Manager"))
{
roleManager.Create(new VidRole("Manager", "مدیر سایت"));
}
if (!roleManager.RoleExists("Writer"))
{
roleManager.Create(new VidRole("Writer", "نویسنده"));
}
if (!roleManager.RoleExists("RegisteredUser"))
{
roleManager.Create(new VidRole("RegisteredUser","کاربر عضو"));
}
if (!roleManager.RoleExists("VIP"))
{
roleManager.Create(new VidRole("VIP","کاربر ویژه"));
}
if (!roleManager.RoleExists("BannedUSers"))
{
roleManager.Create(new VidRole("BannedUSers","کاربر محروم"));
}
#endregion
#region Users
var usermanager = new UserManager<VidUser>(new UserStore<VidUser>(context));
var user = new VidUser()
{
UserName = "Admin",
Avatar = "/UserFiles/Admin/brands_01.jpg",
Email = "[email protected]",
FullName = "K. Sadin",
Website = "http://Sadin.ir",
Description = "..."
};
var user1 = new VidUser()
{
UserName = "User",
Avatar = "/UserFiles/Admin/brands_02.jpg",
Email = "[email protected]",
FullName = "K. Sadin",
Website = "http://Sadin.ir",
Description = "..."
};
var user2 = new VidUser()
{
UserName = "Manager",
Avatar = "/UserFiles/Admin/brands_03.jpg",
Email = "[email protected]",
FullName = "K. Sadin",
Website = "http://Sadin.ir",
Description = "..."
};
var userCreationResult = usermanager.Create(user, "kamisevenline");
var userCreationResult2 = usermanager.Create(user1, "kamisevenline");
var userCreationResult3 = usermanager.Create(user2, "kamisevenline");
#endregion
#region Add User To Role
if (userCreationResult.Succeeded)
{
usermanager.AddToRole(user.Id, "Admin");
usermanager.AddToRole(user.Id, "Manager");
usermanager.AddToRole(user.Id, "Writer");
usermanager.AddToRole(user.Id, "RegisteredUser");
usermanager.AddToRole(user.Id, "VIP");
usermanager.AddToRole(user1.Id, "Admin");
usermanager.AddToRole(user2.Id, "Writer");
}
#endregion
//Test Data:
#region Testing Data, Should Remove in the future
var course1 = new Course()
{
Title = "آموزش ام وی سی",
Description = "در این دوره از ابتدا یک سیستم را با MVC طراحی میکنیم و در طی چلسات با نکات آشنا میشویم.",
StartDate = DateTime.Now,
EndDate = DateTime.Now.AddYears(1),
Teacher = user,
SessionCount = 10
};
var course2 = new Course()
{
Title = "آموزش ASP.NET 5.5",
Description = "در این دوره آموزش بنیادین ASP.NET 4.5 را شروع میکنیم و تا آخر دوره پروژه ای آماده خواهیم کرد.",
StartDate = DateTime.Now,
EndDate = DateTime.Now.AddMonths(1),
Teacher = user,
SessionCount = 10,
};
context.SaveChanges();
context.Videos.AddOrUpdate(new Video()
{
Address = "/Videos/Admin/MVC/Vid01.mp4",
Description = "در جلسه اول با این قسما ها آشنا می شویم. مدیریت،کاربران، و دیگر بخش ها",
Keywords = "کلیدواژه,MVC,آموزش MVC",
Picture = "/images/dummy/products/product-6.jpg",
SentDate = DateTime.Now,
Slug = "جلسه-اول-آموزش-mvc",
Status = true,
Title = "جلسه اول آموزش MVC",
User = user,
Course = course1
}); context.Videos.AddOrUpdate(new Video()
{
Address = "/Videos/Admin/MVC/Vid01.mp4",
Description = "در جلسه اول با این قسما ها آشنا می شویم. مدیریت،کاربران، و دیگر بخش ها",
Keywords = "کلیدواژه,MVC,آموزش MVC",
Picture = "/images/dummy/products/product-6.jpg",
SentDate = DateTime.Now,
Slug = "جلسه-اول-آموزش-mvc",
Status = true,
Title = "جلسه اول آموزش MVC",
User = user,
Course = course2
}); context.Videos.AddOrUpdate(new Video()
{
Address = "/Videos/Admin/MVC/Vid01.mp4",
Description = "در جلسه اول با این قسما ها آشنا می شویم. مدیریت،کاربران، و دیگر بخش ها",
Keywords = "کلیدواژه,MVC,آموزش MVC",
Picture = "/images/dummy/products/product-6.jpg",
SentDate = DateTime.Now,
Slug = "جلسه-اول-آموزش-mvc",
Status = true,
Title = "جلسه اول آموزش MVC",
User = user,
Course = course1
}); context.Videos.AddOrUpdate(new Video()
{
Address = "/Videos/Admin/MVC/Vid01.mp4",
Description = "در جلسه اول با این قسما ها آشنا می شویم. مدیریت،کاربران، و دیگر بخش ها",
Keywords = "کلیدواژه,MVC,آموزش MVC",
Picture = "/images/dummy/products/product-6.jpg",
SentDate = DateTime.Now,
Slug = "جلسه-اول-آموزش-mvc",
Status = true,
Title = "جلسه اول آموزش MVC",
User = user,
Course = course2
}); context.Videos.AddOrUpdate(new Video()
{
Address = "/Videos/Admin/MVC/Vid01.mp4",
Description = "در جلسه اول با این قسما ها آشنا می شویم. مدیریت،کاربران، و دیگر بخش ها",
Keywords = "کلیدواژه,MVC,آموزش MVC",
Picture = "/images/dummy/products/product-6.jpg",
SentDate = DateTime.Now,
Slug = "جلسه-اول-آموزش-mvc",
Status = true,
Title = "جلسه اول آموزش MVC",
User = user,
Course = course1
}); context.Videos.AddOrUpdate(new Video()
{
Address = "/Videos/Admin/MVC/Vid01.mp4",
Description = "در جلسه اول با این قسما ها آشنا می شویم. مدیریت،کاربران، و دیگر بخش ها",
Keywords = "کلیدواژه,MVC,آموزش MVC",
Picture = "/images/dummy/products/product-6.jpg",
SentDate = DateTime.Now,
Slug = "جلسه-اول-آموزش-mvc",
Status = true,
Title = "جلسه اول آموزش MVC",
User = user,
Course = course2
});
context.SaveChanges();
#endregion
이 코드에서 내 실수가 무엇인지 알려주세요. 다들 감사 해요.