gpt4 book ai didi

c# - Entity Framework 和类

转载 作者:太空宇宙 更新时间:2023-11-03 21:58:06 25 4
gpt4 key购买 nike

我正在尝试学习 Entity Framework 。说,我有以下类(class)

class Course
{
[Key]
public virtual int CourseID {get; set;}
public virtual string CourseName {get; set;}
}
class CourseDBContext:DBContext
{
public DbSet<Course> Courses{get;set;}
}

然后我可以使用 Linq 查询数据库,如下所示

using (CourseDBContext a = new CourseDBContext())
{
var b = from c in a.Course
where c.CourseID == 1001
select c;

var d = b.FirstOrDefault();
if(d != null)
Console.WriteLine(d.CourseName);
}

这很好用。现在,如果我添加第二个类

class Assignment
{
[Key]
public virtual int CourseID {get; set;}
public virtual int StaffID {get; set;}
}
class AssignmentDBContext:DBContext
{
public DbSet<Assignment> Assignments{get;set;}
}

现在,如何使用 Linq 选择和显示与 CourseID = 1001 关联的 CourseName 和 StaffID?上面的示例是人为设计的,因此表设计和字段无关紧要。我只想知道如何使用 Entity Framework 和 Linq 从两个不同的数据库表中查询两个类之间的数据。

谢谢

最佳答案

两个实体需要在相同的上下文中。

public class CoursesContext: DbContext
{
public DbSet<Assignment> Assignments {get; set;}
public DbSet<Course> Courses {get; set;}
}

您可以添加一个 Assignment 导航属性来过滤外键:

public class Course
{
[Key]
public virtual int CourseID {get; set;}
public virtual string CourseName {get; set;}
public virtual Assignment {get; set;}
}

然后你可以这样查询:

var staffId = 
from c in a.Course
where c.CourseID == 1001
select c.Assignment.StaffID;

关于c# - Entity Framework 和类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11363260/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com