到目前为止,我们探讨了EF Core的初步使用,映射关系配置与导航属性配置。这一篇,我将分享我在工作中的实际应用经验。
实际开发中,往往先设计数据表再进行开发,因此EF Core的数据迁移功能较少使用。因此,EF Core的初始化通常指的是上下文初始化。
初始化时,需要链接字符串。若不考虑后续变更或上下文复用性,可在自定义上下文中重写OnConfiguring方法定义链接字符串。若需变更或复用,可在自定义上下文类中添加连接字符串属性或字段。
实体对象托管方面,如果未使用配置文件,需在上下文类中添加一个DbSet类型的属性。使用配置类(如《C# 数据操作系列 - 7. EF Core 导航属性配置》中介绍的配置类)需在EF Core中应用配置,具体操作是创建配置类并引用。
在使用时,可直接使用DbContext.Set获取数据加载集,结合实体类托管一并使用。使用配置文件利大于弊,推荐用于关系配置。
在数据增删改方面,EF Core操作相对简单。新增时,会自动检索导航属性另一端是否需要新增。删除时,根据导航属性设置,或删除实体或设置外键为NULL。修改时,EF Core通过ChangeTracker监控实体状态更新。
查询方面,支持LINQ,提供简单示例。结合排序、分页时,需注意排序、分页的写法。分页只能通过方法链形式进行,使用工具方法确保高效查询。
在执行复杂查询时,应使用简单查询条件以提高效率。EF Core在调用ToList时,会转换为SQL语句发起查询。
EF Core使用已介绍完,后续将分享剩余内容。数据访问系列,EF Core篇即将结束,接下来将探索Nhibernate、Dapper和SqlSugar等ORM框架。
更多内容请关注我的博客《高先生小屋》。
温馨提示:答案为网友推荐,仅供参考