当前位置: 首页 > news >正文

山东建设机械协会网站wordpress 主动提交

山东建设机械协会网站,wordpress 主动提交,前端开发培训机构排名前十,编程开源网站【Entity Framework】你知道如何处理无键实体吗 文章目录 【Entity Framework】你知道如何处理无键实体吗一、概述二、定义无键实体类型数据注释 三、无键实体类型特征四、无键实体使用场景五、无键实体使用场景六、无键使用示例6.1 定义一个简单的Blog和Post模型#xff1a;6…【Entity Framework】你知道如何处理无键实体吗 文章目录 【Entity Framework】你知道如何处理无键实体吗一、概述二、定义无键实体类型数据注释 三、无键实体类型特征四、无键实体使用场景五、无键实体使用场景六、无键使用示例6.1 定义一个简单的Blog和Post模型6.2 定义一个简单数据库视图6.3 定义一个类来保存数据库视图的结果6.4 使用HasNoKey API在OnModelCreating中配置无键实体类型6.5 配置DbContext以包含DbSetT6.7 采用标准方式查询数据库视图 七、总结 一、概述 Entity Framework 除了常规实体类型外EF Core模型还可以包含无键实体类型可用于对不包含键值的数据执行数据库查询。 二、定义无键实体类型 可按如下定义无键实体类型 数据注释 [Keyless] public class BlogPostsCount {public string BlogName{get;set;}public int PostCount{get;set;} }Fluent API protected override void OnModelCreating(ModelBuilder modelBuilder) {modelBuilder.EntityBlogPostsCount().HasNoKey(); }三、无键实体类型特征 无键实体类型支持与常规实体类型相同的多个映射功能例如继承映射和导航属性。在关系存储上它们可以通过Fluent API方法或数据注释来配置目标数据库对象和列。 但是它们不同于常规实体类型因为他们 不能定义键 永远不会对DbContext中的更改进行跟踪因此不会对数据库进行插入更新或删除这些操作 绝不会被约定发现 仅支持导航映射功能的子集具体如下 它们永远不能充当关系的主体端它们可能没有指向从属实体的导航它们只能包含指向常规实体的引用导航属性实体不能包含无键实体类型的导航属性 需要配置 [Keyless] 数据注释或 .HasNoKey() 方法调用 可以映射到定义查询。 定义查询是在模型中声明的查询它充当无键实体类型的数据源 可以具有层次结构但必须映射为 TPH 不能使用表拆分或实体拆分 四、无键实体使用场景 无键实体类型的一些主要使用场景包括 充当SQL查询的返回类型映射到不包含主键的数据库视图映射到未定义主键的表映射到模型中定义的查询 五、无键实体使用场景 可以使用 ToTable 或 ToView Fluent API 将无键实体类型映射到数据库对象。 从 EF Core 的角度来看此方法中指定的数据库对象是一个视图这意味着它将被视为只读查询源并且不能作为更新、插入或删除操作的目标。 但是这并不意味着数据库对象实际上必须是数据库视图。 它也可以是将被视为只读的数据库表。 相反对于常规实体类型EF Core 假设 ToTable 方法中指定的数据库对象可以作为表这意味着它可用作查询源但也可作为更新、删除和插入操作的目标。 事实上可以在 ToTable 中指定数据库视图的名称只要该视图配置为可在数据库上更新一切都应能正常运行。 六、无键使用示例 6.1 定义一个简单的Blog和Post模型 public class Blog {public int BlogId { get; set; }public string Name { get; set; }public string Url { get; set; }public ICollectionPost Posts { get; set; } }public class Post {public int PostId { get; set; }public string Title { get; set; }public string Content { get; set; }public int BlogId { get; set; } }6.2 定义一个简单数据库视图 db.Database.ExecuteSqlRaw(CREATE VIEW View_BlogPostCounts ASSELECT b.Name, Count(p.PostId) as PostCountFROM Blogs bJOIN Posts p on p.BlogId b.BlogIdGROUP BY b.Name);6.3 定义一个类来保存数据库视图的结果 public class BlogPostsCount {public string BlogName { get; set; }public int PostCount { get; set; } }6.4 使用HasNoKey API在OnModelCreating中配置无键实体类型 protected override void OnModelCreating(ModelBuilder modelBuilder) {modelBuilder.EntityBlogPostsCount(eb {eb.HasNoKey();eb.ToView(View_BlogPostCounts);eb.Property(v v.BlogName).HasColumnName(Name);}); }6.5 配置DbContext以包含DbSetT public DbSetBlogPostsCount BlogPostCounts { get; set; }6.7 采用标准方式查询数据库视图 var postCounts db.BlogPostCounts.ToList(); foreach (var postCount in postCounts) {Console.WriteLine(${postCount.BlogName} has {postCount.PostCount} posts.);Console.WriteLine(); }七、总结 无键主要应用在SQL、视图、存储过程的查询在制作报表时应用比较多。
http://www.zqtcl.cn/news/529476/

相关文章:

  • 专业网站设计公司有哪些绿色营销案例100例
  • 网站建设买了域名山东省作风建设网站
  • 留学中介网站建设方案设计企业品牌商标
  • 会展相关网站建设情况seo的基本步骤是什么
  • 太原网站建设鸣蝉公司免费网页制作网站建设
  • 中山专业网站建设网站开发基础知识简述
  • 包头索易网站建设中国建设银行网站余额查询
  • 哪家公司做网站开发做得比较好佛山商城网站制作
  • 可以做淘宝推广的网站优化网页设计是什么
  • 邢台手机网站制作优秀网站建设哪家好
  • 网站托管运营所需资料长春专用网站建设
  • 北京网站建设招聘江苏住房和城乡建设局网站
  • 如何让订阅号菜单做微网站哪家网站做的好
  • 北京建站方案北京seo主管
  • 网站平台建设费用的会计核算凡科教育小程序怎么样
  • 网站配置文件在哪里sns网站需求
  • 网站运营优化建议英国网站域名
  • 网站开发洲际企业网站模板论坛
  • 如何建外贸网站软件工程专业是干什么的
  • 衣联网和一起做网站 哪家强网站seo方案建设目标
  • 深圳企业股权优化网站程序代码优化
  • 中国石油大学网页设计与网站建设软件界面设计要求
  • 看网站有没有做404报名网站建设
  • 有哪些是做二手的网站关于网站制作的指标
  • 网站数据库是谁提供空间坐标系做图网站
  • 网站开发的外文文献佛山做网站格
  • 石家庄网站seo服务免费10大看盘软件
  • 自己做网站卖什么给个网站好人有好报2020免费
  • 网站源码安装步骤网站开发用c 语言
  • 网站首页是什么产品网络推广方案