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

医院网站建设公司新东方烹饪学校学费一年多少钱

医院网站建设公司,新东方烹饪学校学费一年多少钱,国产4k高清电视十大排名,从手机上可以做网站吗一、什么时候用导航属性 看数据库表的对应关系,一对多的时候用比较好,不用多写一个联表实体,而且查询高效 二、为实体配置导航属性 1.给关系是一的父表实体加上: [FreeSql.DataAnnotations.Navigate(nameof(子表.子表关联字段))]…

一、什么时候用导航属性

        看数据库表的对应关系,一对多的时候用比较好,不用多写一个联表实体,而且查询高效

 二、为实体配置导航属性

1.给关系是一的父表实体加上:

    [FreeSql.DataAnnotations.Navigate(nameof(子表.子表关联字段))]public List<子表> xxx { get; set; } = new List<子表>();

2.给关系是n的子表实体加上:

    [FreeSql.DataAnnotations.Navigate(nameof(子表关联字段))]public 父表 yyy { get; set; }

3.Demo例子:(一个省份对应多个城市)

/// <summary>
/// 1
/// </summary>
[Table("Province")]
public class Province
{[FreeSql.DataAnnotations.Column(IsPrimary = true, IsIdentity = true, Name = "Id")]public int Id { get; set; }[Column("ProvinceCode")]public int? ProvinceCode { get; set; }[FreeSql.DataAnnotations.Navigate(nameof(City.ProvinceId))]public List<City> citys { get; set; } = new List<City>();
}/// <summary>
/// n
/// </summary>
[Table("City")]
public class City
{[FreeSql.DataAnnotations.Column(IsPrimary = true, IsIdentity = true, Name = "Id")]public int Id { get; set; }[Column("CityCode")]public int? CityCode { get; set; }[Column("ProvinceId")]public int ProvinceId { get; set; }[Column("CityGroup")]public int? CityGroup { get; set; }[FreeSql.DataAnnotations.Navigate(nameof(ProvinceId))]public Province province { get; set; }
}

 三、怎么用导航属性

原理:左外连接

总结:使用关键字Include(找父表)、IncludeMany(找子表)

// 一对多导航属性关联查询
// 01 无条件查询
// 导航属性带出其父表(可序列化)
var list1 = MSfsql.Select<City>().Include(x => x.province).ToList();// 导航属性带出其子表(不可序列化,因为子表含有父表字段,会一直引用下去)
var list2 = MSfsql.Select<Province>().IncludeMany(x => x.citys).ToList();// 02 有条件查询
// 【子表 -> 父表】
var query1 = MSfsql.Select<City>().Where(x => (x.province.Id < 20) && (x.Id == 1 || x.Id == 198)) //先对本表(子表)筛选,条件可含子表 父表.Include(x=>x.province) // 选择带出查询结果对应的那个父表.ToList();// 【父表->子表】
var query2 = MSfsql.Select<Province>().Where(x => x.Id < 20 && x.citys.Any(x=> x.Id ==1 || x.Id==198 )) //先对本表(父表)筛选,条件可含子表 父表.IncludeMany(x => x.citys) // 选择带出查询结果对应的多个子表.ToList();var query3 = MSfsql.Select<Province>().Where(x => x.Id < 20 && x.citys.Any(x => x.Id == 1 || x.Id == 198)) //先对本表(父表)筛选,条件可含子表 父表.IncludeMany(x => x.citys, then => then.Where(x=> x.CityGroup == 1)) // 选择带出子表,并且要求子表具备一定条件.ToList();

四、一对多免导航属性配置的写法

1.实体

        仅给关系是一的父表实体加上List<子表>字段即可

/// <summary>
/// 1
/// </summary>
[Table("Province")]
public class Province
{[FreeSql.DataAnnotations.Column(IsPrimary = true, IsIdentity = true, Name = "Id")]public int Id { get; set; }[Column("ProvinceCode")]public int? ProvinceCode { get; set; }//[FreeSql.DataAnnotations.Navigate(nameof(City.ProvinceId))]public List<City> citys { get; set; } = new List<City>();
}/// <summary>
/// n
/// </summary>
[Table("City")]
public class City
{[FreeSql.DataAnnotations.Column(IsPrimary = true, IsIdentity = true, Name = "Id")]public int Id { get; set; }[Column("CityCode")]public int? CityCode { get; set; }[Column("ProvinceId")]public int ProvinceId { get; set; }[Column("CityGroup")]public int? CityGroup { get; set; }// [FreeSql.DataAnnotations.Navigate(nameof(ProvinceId))]// public Province province { get; set; }
}

2.查询方法

原理:先查满足条件的父表,提取出这些父表ID,再通过提取的父表ID查子表,freesql内部代码会通过IncludeMany里面的表达式树关联父表和子表

var query4 = fsql.Select<Province>().Where(x=>x.Id > 10) //此处写父表 or 子表的查询条件,筛选出父表.IncludeMany(x => x.citys.Where(y => x.Id == y.ProvinceId)) //此处写关联条件,带出子表.ToList();//本质是查两次,freesql内部有代码优化机制

http://www.dtcms.com/wzjs/521609.html

相关文章:

  • 长沙网站设计培训网络营销学什么内容
  • 张家口网站建设哪家服务好培训学校招生方案范文
  • 邢台企业做网站推广网站推广如何做
  • 保存的密码变成乱码太原seo排名收费
  • 芜湖网站建设百度指数功能模块有哪些
  • 网站网页制作机构网络推广优化
  • 卖掉的网站了对方用来做违法珠海网站设计
  • 五星级酒店网站建设某网站seo诊断分析和优化方案
  • wordpress移动站点网络营销的策略有哪些
  • 美橙极速建站系统网络营销的模式有哪些?
  • 网站技术说明书模板新闻近期大事件
  • 商品展示类网站源码惠州大亚湾经济技术开发区
  • 规划局网站建设工作总结网站工具查询
  • 企业网站的运营如何做培训网络营销机构
  • 莱芜网站优化加徽信xiala5效果好深圳最新消息今天
  • 网站 优化手机版seo视频教程我要自学网
  • 做淘宝优惠券怎么有网站品牌seo推广
  • 建设独立商城网站制作怎么推广比较好
  • WordPress添加点赞打赏windows优化大师值得买吗
  • 深圳微信网站建设公司哪家好网络营销的优势包括
  • wordpress免费主题网站百度搜索高级搜索
  • b站免费版2023最新版本免费网站推广网站短视频
  • 如何做网络营销推广5seo课培训
  • 个人网站制作wordpress网络推广外包公司排名
  • 关于做女装的网站品牌网
  • 帝国 cms 网站关键字全球搜官网
  • 哈尔滨发布信息的网站360网站seo手机优化软件
  • 免费制作app生成器网站市场调研报告范文2000
  • DW做的网站加载慢湖北权威的百度推广
  • 工人找工作哪个网站好网络营销策略分析报告