NBearV3——ORM实体关系设计速查手册

版本

1.2 [2006-11-13]

简介

本手册演示NBearV3支持的所有实体关系设计的完全参考。包括1对1,1对多,多对多关联以及自关联的正向、反向引用时的所有情况的设计方法。

注1:本手册并不讨论继承关系。因为,继承关系自然映射到设计实体接口的继承,无需太多额外讨论。

注2:所有的关联在演示中都包含了正向和反向的可读写引用,在实际的项目中,一般并不总是需要同时有正向和反向引用,可以只在一个方向包含引用,或一方包含引用,另一方只包含一个外键ID,也可以只包含只读的引用。并且,在双向引用时,绝对不能同时设置为双向的LazyLoad=false。

注3:所有关联关系中的正向或反向引用的属性,根据需要,可以添加ContainedAttribute标识,以实现属性和包含属性的实体的级联更新/删除。在本文演示的所有引用中都没有包含ContainedAttribute,实际项目中请注意添加,但是不要同时在正向和反向引用属性中添加ContainedAttribute。

注4:在阅读本文之前,建议读者先阅读《NBearV3 Step by Step教程——ORM篇》以掌握NBearV3中有关ORM的基本知识。

代码

本手册演示的所有类图和代码,包含于可以从sf.net下载的NBearV3最新源码zip包中的tutorials\Entity_Relation_Manual目录中。因此,在使用本手册的过程中如有任何疑问,可以直接参考这些代码。

正文

一、1对1主键关联

分析:一对一主键关联指的是两个实体通过相同的主键进行关联。典型的关联关系如图中的User和UserProfile的关联。其中,UserProfile不能脱离具有相同主键值的User存在。因此,实际上,对于UserProfile来说,它的属性UserID既是它的PK,又是一个关联到User的FK,且UserProfile.UserID应该对User.ID有引用完整性约束。

public interface User : Entity
  {
    [PrimaryKey]
    Guid ID { get; set; }
    string Name { get; set; }

    [PkQuery(LazyLoad=true)]
    UserProfile Profile
    {
      get;
      set;
    }
  }

  public interface UserProfile : Entity
  {
    [PrimaryKey]
    [FriendKey(typeof(User))]
    Guid UserID { get; set; }
    string Content { get; set; }

    [PkReverseQuery(LazyLoad = true)]
    User User
    {
      get;
      set;
    }
  }

时间: 2024-09-19 08:58:05

NBearV3——ORM实体关系设计速查手册的相关文章

CorelDraw疑难杂症速查手册

CorelDraw从诞生到现在,已经出到第13个版本,是平面设计的常用软件,它效率高.容易上手,受到很多平面设计爱好者和工作者的青睐.但大家在使用CorelDraw的时候总会碰到这样那样的问题,尤其是一些常见的问题深深地困绕着CorelDraw使用者.于是便有了这本CorelDraw疑难杂症速查手册,希望对大家有所帮助. 此手册收集了与各位同道好友中相互探讨提出的问题以及百度CD吧的提问,结合实际操作和工作中遇到的问题,整理而成.其中有些问题参考了吧中好友和网络上同道中人的回答,对于一些不清楚或

非常有用的 HTML5 开发教程和速查手册

如今,随着主流浏览器对HTML5的不断支持和完善,越来越多的开发者开始使用 HTML5 来开发各种功能强大的Web应用程序,HTML5 正引领互联网新革命.为了方便大家更好的学习 HTML5 ,今天这篇文章向大家分享15个非常有用的 HTML5 开发教程和速查手册. HTML5教程 How to Make an HTML5 iPhone App Code a Backwards Compatible, One Page Portfolio with HTML5 and CSS3 Design &

CMD命令速查手册 cmd命令大全

CMD命令速查手册 cmd命令大全 cmd命令详解如果你想了解本页面是怎么来的 请下载批处理代码 到--其他\CMD命令速查手册 运行 就可以得到本页面  CMD 命令速查手册 雪深 - 2009-03-04 星期三       ASSOC 显示或修改文件扩展名关联.        AT 计划在计算机上运行的命令和程序.        ATTRIB 显示或更改文件属性.        BREAK 设置或清除扩展式 CTRL+C 检查.        CACLS 显示或修改文件的访问控制列表(AC

汇编语言指令以及伪指令速查手册

汇编语言指令以及伪指令速查手册(备查) 它们在存贮器和寄存器.寄存器和输入输出端口之间传送数据.    1. 通用数据传送指令.      MOV   传送字或字节.      MOVSX 先符号扩展,再传送.      MOVZX 先零扩展,再传送.      PUSH   把字压入堆栈.      POP   把字弹出堆栈.      PUSHA 把AX,CX,DX,BX,SP,BP,SI,DI依次压入堆栈.      POPA   把DI,SI,BP,SP,BX,DX,CX,AX依次弹出堆

在网上找的创建《CMD命令速查手册》的批处理_DOS/BAT

在线演示:CMD 命令速查手册 复制代码 代码如下: @echo off & setlocal EnableDelayedExpansion echo.======================================== echo 开始创建<CMD命令速查手册>,请稍候-- echo 创建网页文件头-- >CMDHelp.htm echo ^<head^> >>CMDHelp.htm echo ^<title^>CMD命令速查手册^

Web开发人员常用速查手册 英文集合推荐_相关技巧

为了方便各位朋友,本文收集了一些对Web开发人员非常有用的手册,记得推荐一下哦. HTML 速查手册 HTML/XTML in one page HTML5: The Evolution of Web Standards by James Sugrue (X)HTML Elements and Attributes Doctype Declarations (DTDs) XHTML Character Entity Reference GoSquared HTML Help Sheet   CS

【项目求合作】想做个关于vb.net的开发速查手册,有意者前来报名

问题描述 如题,我想做一个关于vb.net的开发速查手册,包括常用的方法.属性.数据类型.类--总之,一切以用为本,兼顾学习功能,方便广大vb.net码农们编程和学习.适用开发水平:20%~80%(当然80%以上也可以来看看,顺便纠错,谢谢!)收录内容常用度:100%~40%手册格式:PDF.XPS.DOC主要分类:数据.输入数据.处理数据.输出数据比如在处理数据中的If语句可以这么写:[作用]根据表达式的值有条件地执行一组语句.{编者注:引自MSDN}[格式]'多行语法Ifcondition[

产品工作速查手册

一.产品定义阶段 在产品定义阶段要检查: 1.产品介绍是否能一句话解释清楚 2.是否有明确.精细的用户群定义(包括外部用户和内部用户)? 3.用户群有多大? 4.产品解决了用户哪些问题,痛点还是痒点?如果是运营/营销类,要提出可量化的价值评估 5.是否有清晰的用户使用场景.用户行为/操作习惯描述 6.还有哪些厂商提供类似服务,如果有是否做了竞品分析:有哪些竞争对手?提供了哪些服务或产品功能(横向对比)?各自产品或服务的竞争优势.劣势是哪些?,各自面对的细分市场是什么?  7.产品SWOT分析 8

电脑&amp;quot;蓝屏&amp;quot;原因之速查手册_硬件维护

死机是令操作者颇为烦恼的事情.死机时的表现多为"蓝屏",无法启动系统,画面"定格"无反应,鼠标.键盘无法输入,软件运行非正常中断等.尽管造成死机的原因很多,但是万变不离其宗,其原因永远也脱离不了硬件与软件两方面.  一.由硬件原因引起的死机  [散热不良]    显示器.电源和CPU在工作中发热量非常大,因此保持良好的通风状况非常重要,如果显示器过热将会导致色彩.图象失真甚至缩短显示器寿命.工作时间太长 也会导致电源或显示器散热不畅而造成电脑死机.CPU的散热是关系