public PlutoDBContext()
: base("name=PlutoDBContext")
{
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
throw new UnintentionalCodeFirstException();
}
public virtual DbSet<Author> Authors { get; set; }
public virtual DbSet<Course> Courses { get; set; }
public virtual DbSet<CourseSection> CourseSections { get; set; }
public virtual DbSet<Post> Posts { get; set; }
public virtual DbSet<Tag> Tags { get; set; }
public virtual DbSet<tblUser> tblUsers { get; set; }
================================================= =======================
static void Main(string[] args)
{
var dbContext = new PlutoDBContext();
//var obj = dbContext.GetCourses();
//foreach (var item in obj)
//{
// Console.WriteLine(item.Title);
//}
var ent = from c in dbContext.Courses
where c.Level ==2 && c.Author.AuthorID ==1
select c;
foreach (var item in ent)
{
Console.WriteLine(item.Price);
}
================== ================================================== ==
В приведенном выше LINQ c - это переменная, указывающая на таблицу «Курс» (dBcontext.Courses). «c .Level» подходит, поскольку «Level» - это столбец внутри таблицы «Course». Но как мы можем использовать c .Author.AuthorId, «Author» - это другая таблица, а «AuthorId» - это имя столбца, а «c» - это набор сущностей внутри таблицы «Course».
Я имею в виду "c" должен иметь доступ только к свойствам класса "Курс". Как он указывает на класс «Автор» и получает доступ к его свойствам (c .Author.AuthorId).