我正在一個網站上工作,並且我首先使用代碼來創建數據庫。 我的視頻類:ASP.NET Web表格中表格之間的關係
[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; }
所以你可以看到我有2個屬性:Course
和VidUser
thees屬性是我的班VidUser
是我的用戶類(使用ASP.NET身份ApplicationUser
類ASP.NET身份) 。 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; }
我的問題是如何thees表之間的關係,你知道每一個用戶(VidUser)可以是課程教師,可以每場有一個老師對於我在頂部寫的其他課程而言也是如此。 所以有些地方我需要得到視頻的細節,但我得到空引用錯誤:
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
請讓我知道我在這段代碼中犯了什麼錯誤。謝謝你們。