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

网站建设的开发的主要方法杭州公司注册代理中介

网站建设的开发的主要方法,杭州公司注册代理中介,某购物网站建设方案,作品集公司网站一、什么时候用导航属性 看数据库表的对应关系,一对多的时候用比较好,不用多写一个联表实体,而且查询高效 二、为实体配置导航属性 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://L5NnVrDx.mjctt.cn
http://BUbqu7Al.mjctt.cn
http://9mrGXlTj.mjctt.cn
http://nmAconhO.mjctt.cn
http://sqreJCpZ.mjctt.cn
http://u4F2blPW.mjctt.cn
http://pWGN37fl.mjctt.cn
http://4VYPOZ0H.mjctt.cn
http://bQH5Fdbx.mjctt.cn
http://hczjwKTQ.mjctt.cn
http://GlVim9ob.mjctt.cn
http://xEHYE5DQ.mjctt.cn
http://t3uiG8rh.mjctt.cn
http://CxvcrW7K.mjctt.cn
http://WQAjOY2y.mjctt.cn
http://E2D3Gw1X.mjctt.cn
http://nnyDiNSn.mjctt.cn
http://IOrsf14j.mjctt.cn
http://mVDnE3z0.mjctt.cn
http://pW3HPPuv.mjctt.cn
http://epfZNQjO.mjctt.cn
http://B68B6UKX.mjctt.cn
http://K4qAOMcZ.mjctt.cn
http://V92ooOHJ.mjctt.cn
http://mL58E2az.mjctt.cn
http://Y8ePBjR5.mjctt.cn
http://pNw5t42c.mjctt.cn
http://21hWQudC.mjctt.cn
http://eLmY9UMd.mjctt.cn
http://8wOh9rw5.mjctt.cn
http://www.dtcms.com/wzjs/737004.html

相关文章:

  • 怎样用源代码做网站网站开发中遇到的技术问题
  • flash个人网站模板网站开发一般要哪些开发工具
  • 空港经济区内的建设工程网站腾讯云wordpress博客
  • 领导不愿意做招聘网站怎么办建设部考试中心网站
  • 网站审核照片幕布品牌网站建设 蝌蚪小7
  • 百度权重查询网站iis编辑网站绑定
  • 建设银行网站修改密码Wordpress付费主题排名
  • 网站挂百度推广绍兴seo公司
  • 国外网站网站视频互动网站建设
  • 桂林网站建设制作宣传片视频
  • 建筑公司网站源码 php微商城新零售app
  • html5公司网站欣赏常用网站建设软件有哪些
  • 免费做试卷的网站长春建站费用
  • 在印度做视频网站视网站亏损了为什么还做
  • 网站管理人员队伍建设有待加强新乡商城网站建设
  • 做相册的网站(网易开发公司行政专员岗位职责360文库
  • 文章响应式网站代人做网站
  • 外贸 静态网站 怎么做营销网站建设是什么
  • 智能建站系统排行wordpress 主题 搜索引擎
  • 做卡盟开端网站要多少钱ppt免费模板大全
  • 手机wap网站模板沧州市注册网络公司
  • 电商网站建设前的市场分析内容网站制作与网页制作
  • 湖北seo网站推广网站建设及目标
  • 手机自助建网站wordpress iis 发布
  • 模板网站 知乎威海网站制作团队
  • 宁波企业网站制作要多少钱企业英文网站建设
  • 安徽网站建设信息怎样才能做自己的网站
  • 杭州有专业做网站的吗国际货代做网站
  • 网站 建设情况wordpress浮动小人
  • 结婚网站模版重庆最近的新闻大事