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

青海住房和城乡建设厅网站首页/seo技术员

青海住房和城乡建设厅网站首页,seo技术员,佛山网站建设哪个,商标注册在哪个部门申请OneToOne 垂直扩展表字段是很常见的方法, 主表存商品资料, 分表存每个客户对应商品的备注和个性化的价格等等, 本文使用Blazor一步步实现这个简单的需求. 1. 基于实战 10分钟编写数据库维护项目建立项目 b17tableII 2. 数据实体类 One To One 关系: 在这里 我们…

OneToOne 垂直扩展表字段是很常见的方法, 主表存商品资料, 分表存每个客户对应商品的备注和个性化的价格等等, 本文使用Blazor一步步实现这个简单的需求.

1. 基于实战 10分钟编写数据库维护项目建立项目 b17tableII

2. 数据实体类

One To One 关系:

在这里 我们使用 [Navigate(nameof(SubCagetory3PK.Id))] 来导航, 在两个实体之间定义了一对一的关系,这里Cagetory3与SubCagetory3PK是一对一的关系。

/// <summary>
/// OneToOne, 两边都用 pk 作为关联,才是绝对的1v1, 否则是 ManyToOne
/// </summary>
class Cagetory3
{public Guid Id { get; set; }public string? Name { get; set; }[Column(IsIgnore = true)]public string SubName{get => subName ?? (Ext?.Remark ?? "");set{subName = value;Ext = Ext ?? new SubCagetory3PK() { Id = Id };Ext!.Remark = value;}}string? subName;/// <summary>/// 垂直分表,扩展字段/// </summary>[Navigate(nameof(SubCagetory3PK.Id))]public SubCagetory3PK? Ext { get; set; }
}class SubCagetory3PK
{[Column(IsPrimary = true)]public Guid Id { get; set; }public virtual Cagetory3? Cagetory { get; set; }public string? Remark { get; set; }}

3. 下面我们来建立初始示例数据

子表的Id一定要跟主表Id一致,才是OneToOne

    public static void GenDemoDatas(IFreeSql fsql){var repo = fsql.GetRepository<Cagetory3>();if (repo.Select.Any()) return;repo.DbContextOptions.EnableCascadeSave = true;//OneToOne 关键点var uid = Guid.NewGuid();var uid2 = Guid.NewGuid();var cts = new[]{new Cagetory3{Id=uid, //OneToOne 关键点Name = "oto分类1",Ext = new SubCagetory3PK {Id=uid, Remark = "扩展备注1" }} ,new Cagetory3{Id=uid2, //OneToOne 关键点Name = "oto分类2",Ext = new SubCagetory3PK {Id=uid2, Remark = "扩展备注2" }} ,                  };repo.Insert(cts);}

4. 下一步我们需要注入带全功能的 FreeSqlDataService 数据服务:

在 Program.cs 添加以下语句:

builder.Services.AddSingleton(typeof(FreeSqlDataService<>));

5. 建立测试页面

新建文件FetchDataCagetory3.razor

<TablePollo TItem="Cagetory3"IncludeByPropertyNames="@IncludeByPropertyNames"ItemDetails="NullClass"ItemDetailsII="NullClass"EnableCascadeSave />@code {// 由于使用了FreeSql ORM 数据服务,可以直接取对象[Inject] IFreeSql? fsql { get; set; }[Inject] ToastService? toastService { get; set; }List<string> IncludeByPropertyNames = new List<string> {nameof(Cagetory3.Ext) ,};protected override async Task OnAfterRenderAsync(bool firstRender){if (firstRender){Cagetory3.GenDemoDatas(fsql!);}}}

6. 运行

我们运行程序的时候,我们可以看到:数据库中已经自动创建了两张表了:

动图

源码

https://github.com/densen2014/Blazor100/tree/master/b17tableII

https://gitee.com/densen2014/Blazor100/tree/master/b17tableII

参考资料

FreeSql (十八)导航属性 https://www.cnblogs.com/FreeSql/p/11531352.html

多表查询 https://github.com/dotnetcore/FreeSql/wiki/%E5%A4%9A%E8%A1%A8%E6%9F%A5%E8%AF%A2

联级保存 https://github.com/dotnetcore/FreeSql/wiki/%E8%81%94%E7%BA%A7%E4%BF%9D%E5%AD%98

BootstrapBlazor的FreeSql数据注入服务扩展包 https://github.com/densen2014/Densen.Freesql

http://www.jmfq.cn/news/5023891.html

相关文章:

  • 怎么做网站地图的样式/网站推广优化c重庆
  • 一站式做网站系统/百度信息流广告怎么收费
  • 沈阳市住房和城乡建设厅网站/百度平台营销
  • 深圳创业补贴申请流程/seo网页优化服务
  • 郑州网站优化托管/鄂州网站seo
  • 郑州商城网站制作/百度客服电话24小时
  • 哪里做网站比较稳定/百度站长工具怎么关闭
  • wordpress 中文响应式/百度seo新站优化
  • 网站规划与网页设计第四版电子书/站长工具国色天香
  • dw是网页制作平台吗/网站seo排名公司
  • 威联通如何做网站/长沙网站设计
  • 网店托管公司/网站关键词优化排名
  • 杭州萧山区专门做网站的公司/如何让百度收录网址
  • 网站建设 风险/百度seo在哪里
  • 个人备案域名做企业网站/上海关键词排名优化公司
  • 淘宝客做网站怎么做/电子商务网络营销
  • wordpress 如何修改like和dislike/网络优化工程师是干什么的
  • 网站开发费用算无形资产/河南做网站优化
  • java做的网站php/深圳百度快照优化
  • 深圳市网站建设公司排名/搜索引擎营销sem包括
  • 专业的广州手机网站/google关键词工具
  • html5企业网站模板/宁德市自然资源局
  • 电子商务网站建设理论依据/百度网站怎么提升排名
  • 郑州电商网站建设/高端网站建设制作
  • 网站后台管理系统制作软件/今日国际新闻最新消息十条
  • 自己做电影网站需要什么/seo排名哪家正规
  • 西宁网站建设的公司/网络营销专业的就业方向
  • 河南专业网站建设公司/百度95099如何转人工
  • 上海企乐网站制作公司/百度账号登录不了
  • 网站建设是做什么的/百度问答首页