Code First 实体框架多对多关系

2024-03-25

谁能指出我哪里错了!!

我创建了两个简单的类,具有多对多的关系。工作正常,所有表都已正确填充。除了当我尝试检索任何学生课程时,什么都没有返回......

public partial class Student 
{

    public Student()
    {
        Courses = new HashSet<Course>();
    }

    public int StudentID { get; set; }

    [StringLength(50)] 
    [Required]
    public string FirstName { get; set;}

    [StringLength(50)]
    [Required]
    public string LastName {get; set;}

    public DateTime? Enroled {get;set;}

    public ICollection<Course> Courses { get; set; }


}

public class Course
{

    public Course()
    {
        Students = new HashSet<Student>();
    }
    public int CourseID { get; set; }

    [StringLength(30)]
    [Required]
    public string CourseTitle { get; set; }

    [StringLength(255)]
    public string CourseDesc { get; set; }

    public ICollection<Student> Students { get; set; }
}

    public ContextDB()
        : base (@"Data Source=.\SQLEXPRESS;Initial Catalog=CollegeDB;Integrated Security=True")
    {

    }

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        modelBuilder.Entity<Course>().HasMany(c=>c.Students).WithMany(p => p.Courses)
            .Map(
            m=> {
                m.MapLeftKey("Course_CourseID");
                m.MapRightKey("Student_StudentID");
                m.ToTable("CourseStudents");
            });
    }

    public DbSet<Student> Students { get; set; }
    public DbSet<Course> Courses { get; set; }


}



          var students = db.Students.ToList();

            foreach (Student s in students)
            {
                Console.WriteLine("{0} {1}", s.FirstName, s.LastName);
                foreach (Course c in s.Courses.ToList())
                {
                    Console.WriteLine("{0}", c.CourseTitle);
                }
            }

如果您使用延迟加载,则需要将属性定义为 virtual ,

 public virtual ICollection<Course> Courses { get; set; }

如果你愿意,你可以使用预加载,

var students = db.Students.Include(s=>s.Courses).ToList();

http://codetuner.blogspot.com/2011/07/entity-framework-differed-loading-lazy.html http://codetuner.blogspot.com/2011/07/entity-framework-differed-loading-lazy.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Code First 实体框架多对多关系 的相关文章

  • 使用 EntityFramework 使用空参数值调用存储过程

    我在 sqlserver 2008 上有一个存储过程 其中一个参数接受空值 我不知道如何使用参数上的空值来调用该 SP 为了获得更多上下文 我正在使用 EntityFramework 6xx 在下一个示例中 参数 status Compat
  • 将列添加到 ASP.NET Identity 中的 AspNetUserClaims

    我在用着Microsoft AspNet Identity Core 2 2 1在我的解决方案中 我需要将其与另一个应自动添加声明的系统集成 为了跟踪哪些声明是手动添加的以及哪些是由外部系统创建的 我希望在我的AspNetUserClaim
  • 处理 EF 存储过程的多个结果集的通用方法

    EF 6 NET 4 51 我正在尝试构建一个通用帮助程序类 它将帮助我将每个结果集 翻译 为类型安全类 如此处所述使用 SqlQuery 处理存储过程的多个结果 https stackoverflow com questions 2530
  • Django 如何从 ManyToManyField 序列化并列出全部

    我正在使用 Django 1 9 1 开发移动应用程序后端 我实现了关注者模型 现在我想列出用户的所有关注者 但目前我不得不这样做 我还使用 Django Rest 框架 这是我的 UserProfile 模型 class UserProf
  • 实体框架中的嵌套查询

    我收到以下异常 不支持嵌套查询 操作 1 案例 操作 2 收集 通过这个查询 var Games context Games Select a gt new GameModel Members a Type 1 a UsersInGames
  • EF 和 WCF 错误 - SQL Server Compact 不适用于 ASP.NET 开发

    您好 我有一个简单的 wpf 应用程序设置来使用在另一个项目中运行的测试 wcf 服务 该服务使用实体框架从附加到 wcf 服务项目的 SQL Compact 3 5 sdf 中检索几行 我收到 SQL Server Compact 不适用
  • 无法加载文件或程序集“EntityFramework,版本=6.0.0.0”

    我究竟做错了什么 我该如何解决这个问题 我有一个包含多个项目的解决方案 它是一个 MVC NET 4 5 Web 应用程序 在调试模式下启动后调用其中一个项目时 出现此错误 导致此错误的项目具有以下参考 两个都是版本6 0 0 0 应用程序
  • LINQ 到实体日期时间比较

    我在将 LINQ 中的日期与实体表达式进行比较时遇到问题 我想检查一下是否DateTime DateTime whole day 我想这样做 return context Events Any x gt x UserId id x Date
  • 如何在控制器中使用多个 DBContext

    如何在控制器中使用多个 DBContext 我尝试以不同的方式重载构造函数 一些控制器 public C1 DBContext1 a DBContext2 b DBContext3 c public C1 DBContext1 a publ
  • .NET 3.5 中的实体框架延迟加载

    由于服务器限制 我仅限于 Net 3 5 我使用 Linq to SQL 进行延迟加载 但后来切换到实体框架 L2E 在 3 5 中没有延迟加载 而 L2S 有 有没有办法以某种方式重新生成模板来实现这一目标 您必须在 EF 1 NET 3
  • EF Core 慢速批量插入(约 80k 行)

    我有一个Save具有多个关联集合的对象 对象的总大小如下 对象之间的关系可以从该映射中推断出来 并且在数据库中似乎得到了正确的表示 查询也很好 modelBuilder Entity
  • 升级到 Visual Studio 16.3.0 后,dotnet ef 命令不再起作用

    这种情况首先发生在家里 所以我想这可能是我家里的台式电脑的问题 但现在我回到工作岗位 我尝试升级并得到了同样的结果 升级前截图 升级 Visual Studio 后的屏幕截图 我得到的错误是 无法执行 因为找不到指定的命令或文件 造成这种情
  • 复杂类型:一个模型中有多个实例?

    有没有办法使用 Fluent api 模型构建器在同一模型中拥有复杂类型的多个实例 public class Contact public int Id get set public string FirstName get set pub
  • 如何重用具有稍微不同的 ProcessStartInfo 实例的 Process 实例?

    我有以下开始的代码robocopy https technet microsoft com en us library cc733145 aspx as a Process 我还需要进行数据库查询以确定每次需要复制哪些目录robocopy被
  • Laravel:如何设置多对多关系的连接?

    我有模型 class User extends Model protected connection mysql public function areas return this gt belongsToMany Area class u
  • Code First - 实体框架 - 如何公开外键

    我有以下数据对象 public class Customer System Data Entity ModelConfiguration EntityTypeConfiguration
  • 学习实体框架[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 将 ASP.NET Identity 实施到现有数据库中

    我有一个现有的项目和 SQL 数据库 其中包含一个用户表 我们称之为 MyOldUsersTable 和带有 PK FK 关系的附加表 地址 电话 职位等 注意 该数据库不使用成员身份或身份 它是从另一个项目中提取的数据库 MyOldUse
  • EF6 Code First 支持表值函数吗?

    是否可以在 EF6 Code First 中调用 TVF 我首先使用 EF6 数据库启动了一个新项目 EF 能够将 TVF 导入到模型中并调用它就好了 但是 对于我一直在处理的没有 RI 的大型只读数据库 更新模型变得非常耗时并且存在问题
  • 在实体框架拦截器中向 DbScanExpression 添加内部联接

    我正在尝试使用实体框架 CommandTree 拦截器通过 DbContext 向每个查询添加过滤器 为了简单起见 我有两个表 一个称为 User 有两列 UserId 和 EmailAddress 另一个称为 TenantUser 有两列

随机推荐

  • laravel 5 - css 文件未在资产清单中定义?

    我收到 laravel 5 的错误消息 我不明白 Next exception ErrorException with message File build css all css not defined in asset manifest
  • 在 C++ 中如何知道数组包含多少个元素? [复制]

    这个问题在这里已经有答案了 例如 我有一个包含 3 个元素的数组 int array 1 4 66 我怎么知道有多少个元素array包含 执行此操作 std size myarray std size https en cppreferen
  • 无法导入 play.api.db.databases

    我正在 Scala Play 2 5 4 中开发一个应用程序 我想测试我的数据库交互 并尝试通过中推荐的方法来测试这一页 https www playframework com documentation 2 5 x ScalaTestin
  • 如何从命令行使用密码生成 openSSL 密钥?

    首先 如果我不提供密码会怎样 是否使用了某种伪随机短语 我只是在寻找 足够好 的东西来阻止休闲黑客 第二 如何从命令行生成密钥对 并在命令行上提供密码 我终于使用这些命令让它工作 使用 exec 通常认为使用不安全 最好在文件中给出 Pas
  • 使用相对 URL 切换到 SSL

    我想创建一个相对链接来切换当前协议http to https 我工作的最后一个地方在服务器上设置了一些东西 以便您可以实现这一点 但我不太记得它 而且我从来不知道它是如何工作的 这样做的理由是 我不需要在需要在生产和开发环境之间移动的文件中
  • 使用 C#/Win32 将文本写入记事本

    我正在摆弄 Win32 API 和 Windows 消息传递 试图弄清楚事情是如何工作的 我发现了这个问题非常有帮助 https stackoverflow com questions 523405 how to send text to
  • Android M 不允许硬链接吗?

    我有一个带有一些 C 代码的 Android 应用程序 它使用 link 2 系统调用来创建到现有文件的硬链接 当我在 Android 5 0 2 上执行该应用程序时 该应用程序的这一部分可以工作 当我在 Android M 设备上执行完全
  • 使用 mysqli 来自 MySQL 列的下拉列表[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我有一个名为的 MySQL 表Users有柱子Name and NameID Like 名称 名称ID布拉德 BD汤姆 ts 我试图拉动所有
  • Heroku:将容器部署到 dyno 时“heroku ps:exec”不起作用

    我正在将 Tensorflow Serving 容器部署到 Heroku 一切正常 但是当我尝试 ssh 到容器中执行某些命令时 Heroku 返回此错误 C Users whitm Desktop CodeProjects deep de
  • CSS 变换比例 - 图像仍然占用空间

    当将以下 CSS 属性添加到图像时 图像仍然占据与大小为 100 时相同的空间 有没有办法让文本填充该图像周围的空间 transform scale 0 2 height auto float right 据我了解 这不是转换的工作原理 它
  • CodenameOne - Android 推送通知支持,无需专业帐户

    因此 我买不起 codeameone 专业帐户 因此我使用 GCM 为 Android 实现了本机推送通知 经过一番努力 我终于成功了 现在 GCM 已弃用 我想迁移到 FCM 但是 我遇到了一些问题 因为代号一不允许我将正确的依赖项注入到
  • 使用 jQuery/cheerio 访问脚本标签中的变量

    我使用 Node js Cheerio 进行网页抓取 请求该网站后 我得到了这样的信息 如何通过 Cheerio jQuery 访问变量值 你可以获得
  • Apache poi - 打印布局,同一张纸上有多个打印区域

    我正在尝试开发一份复杂的报告 并且需要为 Excel 文件设置打印区域 我必须将 xls 文件分成 3 部分 但如果我执行 setPrintArea 新区域会订阅旧区域 结果是我在打印预览中只有最后一页 如何设置多个打印区域 这是代码 pr
  • JNZ 和 CMP 组装说明

    如果我错了请纠正我 这是我的理解JNZ and CMP JNZ 跳跃将会发生 如果Z标志不为零 1 CMP 如果两个值相等 则Z标志已设置 1 否则未设置 0 这是我正在看的 Flash 教程 它正在教授一个简单的 CrackMe 的解决方
  • Field.get(obj) 在注入的 CDI 托管 bean 上返回所有 null,而手动调用 getter 返回正确的值

    我试图通过反射从 JSF 页面的支持 bean 访问某些字段的值 问题是 当我使用 getter 时 我得到了正确的值 但是当我使用必要字段的 get obj 方法时 我总是得到一个空值返回 获取bean对象 ELContext elcon
  • 是否可以将 Java 7 与 IBM WebSphere Application Server 8.5 试用版一起使用

    我已经安装了WAS 8 5TrialWindows 7 上的版本 我想部署并运行 Java 7 应用程序 有可能做到吗 我在 IBM Installation Manager 的功能列表中看不到 IBM WebSphere SDK for
  • 在界面生成器中设置自动调整大小时出现问题

    我有两个 viewController 一个是 UIViewController 的子类 正确自动调整大小 另一个是 UIViewController 子类的子类 我在 Interface Builder 中进行了布局 在模拟器中测试了我的
  • iOS 13 UIView 截图无法正常使用。 iOS 12 运行良好

    我在截取包含显示其中视频流的子视图的主 UIView 时遇到问题 当我截取屏幕截图时 图像是正确的 减去带有黑色视频流的矩形 流图像未显示 截图有问题截图图像不好 https i stack imgur com Cxj3K jpg 和正确的
  • 从资源加载时在 DataGridView 中显示红色“X”的图像

    我正在尝试将我的项目资源中的图像列添加到新创建的 DataGridView 这是代码 DataGridViewImageColumn myImage new DataGridViewImageColumn myImage Image Pro
  • Code First 实体框架多对多关系

    谁能指出我哪里错了 我创建了两个简单的类 具有多对多的关系 工作正常 所有表都已正确填充 除了当我尝试检索任何学生课程时 什么都没有返回 public partial class Student public Student Courses