一个7重嵌套表EF添加语句,注意子表赋值过程中只需写子表主键赋值,不需要写子表外键=父表主键。EF创建时会自动将子表外键设为与父表主键相等
AIRPORT_HELIPORT tt = new AIRPORT_HELIPORT()
{
AIRPORT_HELIPORT_UUID = Guid.NewGuid().ToString(),
UNIT = new List<UNIT>()
{
new UNIT()
{
UNIT_UUID =Guid.NewGuid().ToString(),
SERVICE=new List<SERVICE>()
{
new SERVICE()
{
SERVICE_UUID=Guid.NewGuid().ToString(),
AIRPORT_GROUND_SERVICE= new AIRPORT_GROUND_SERVICE()
{
SERVICE_UUID=Guid.NewGuid().ToString(),
AIRPORT_SUPPLIES_SERVICE=new AIRPORT_SUPPLIES_SERVICE()
{
AIRPORT_SUPPLIES_SERVICE_TS=new List<AIRPORT_SUPPLIES_SERVICE_TS>()
{
new AIRPORT_SUPPLIES_SERVICE_TS()
{
TIME_SLICE_ID=Guid.NewGuid().ToString(),
INTERPRETATION="BASELINE",
SEQUENCE_NUMBER=1,
CORRECTION_NUMBER=1,
SERVICE_UUID=Guid.NewGuid().ToString(),
OIL=new List<OIL>()
{
new OIL()
{
OIL_ID=Guid.NewGuid().ToString()
}
}
}
}
}
}
}
}
}
}
};
AirportHeliportManager.Add(tt);
TAXIWAY_TS twts = new TAXIWAY_TS()
{
TIME_SLICE_ID = Guid.NewGuid().ToString(),
INTERPRETATION = "BASELINE",
SEQUENCE_NUMBER = 1,
CORRECTION_NUMBER = 1,
AIRPORT_HELIPORT_UUID = "1234567890",
DESIGNATOR="T",
TYPE = "TWY",
MANOEUVRING_AREA_AVAILABILITY = new List<MANOEUVRING_AREA_AVAILABILITY>()
{
new MANOEUVRING_AREA_AVAILABILITY()
{
PROPERTIES_WITH_SCHEDULE=new PROPERTIES_WITH_SCHEDULE()
{
PROPERTIES_WITH_SCHEDULE_ID=Guid.NewGuid().ToString()
},
MANOEUVRING_AREA_USAGE=new List<MANOEUVRING_AREA_USAGE>()
{
new MANOEUVRING_AREA_USAGE()
{
USAGE_CONDITION_ID=Guid.NewGuid().ToString(),
USAGE2CONTACT=new List<USAGE2CONTACT>()
{
new USAGE2CONTACT()
{
AIRPORT_USAGE2CONTACT_ID=Guid.NewGuid().ToString()
}
}
}
}
}
}
};
TAXIWAY_TSManager tsman= ManagerFactory.Instance.TAXIWAY_TSManager;
tsman.Add(twts);
NAVAID tt = new NAVAID()
{
NAVAID_UUID="987654321",
TERMINAL_SEGMENT_POINT = new List<TERMINAL_SEGMENT_POINT>()
{
new TERMINAL_SEGMENT_POINT()
{
NAVAID_UUID="987654321",
SEGMENT_POINT_ID=Guid.NewGuid().ToString(),
REPORTING_ATC="YES",
FLY_OVER="YES",
WAYPOINT="YES",
APPROACH_LEG_TS_STARPOINTP = new List<APPROACH_LEG_TS>()
{
new APPROACH_LEG_TS ()
{
TIME_SLICE_ID=Guid.NewGuid().ToString(),
INTERPRETATION="BASELINE",
SEQUENCE_NUMBER=1,
CORRECTION_NUMBER=1,
SEGMENT_LEG_UUID ="1",
ARRIVAL_FEEDER_LEG=new ARRIVAL_FEEDER_LEG() { SEGMENT_LEG_UUID="1"},
APP_SEGMENT_LEG_UUID="0",
INITIAL_LEG=new INITIAL_LEG() { SEGMENT_LEG_UUID="0"},
APP_SEGMENT_LEG_UUID2="2",
INTERMEDIATE_LEG=new INTERMEDIATE_LEG() { SEGMENT_LEG_UUID="2"},
APP_SEGMENT_LEG_UUID3="3",
FINAL_LEG=new FINAL_LEG() { SEGMENT_LEG_UUID="3"},
APP_SEGMENT_LEG_UUID4="4",
MISSED_APPROACH_LEG=new MISSED_APPROACH_LEG() { SEGMENT_LEG_UUID="4"},
FINAL_LEG_TS=new FINAL_LEG_TS()
{
TIME_SLICE_ID=Guid.NewGuid().ToString(),
INTERPRETATION="BASELINE",
SEQUENCE_NUMBER=1,
CORRECTION_NUMBER=1,
SEGMENT_LEG_UUID="7",
FINAL_LEG=new FINAL_LEG() { SEGMENT_LEG_UUID="7"}
}
}
}
}
}
};
NAVAIDManager nvman = ManagerFactory.Instance.NAVAIDManager;
nvman.Add(tt);
注意:如果A表继承于B表,则数据库中A表的主键会强制等于B表的主键,哪怕给A表设置了不同的主键,在Add()函数中也会将A表的主键强制设成B表的主键,而忽略赋予的值。如上面代码
中的FINAL_LEG_TS表继承于表APPROACH_LEG_TS,代码中虽然设置它的主键id值,但最终数据库还是将主键id设为与父表主键id相同。
一个7重嵌套表EF添加语句,注意子表赋值过程中只需写子表主键赋值,不需要写子表外键=父表主键。EF创建时会自动将子表外键设为与父表主键相等的更多相关文章
- Python中if __name__=="__main__" 语句在调用多进程Process过程中的作用分析
2018年2月27日 于创B515 引言 最近准备学习一下如何使用Python中的多进程.在翻看相关书籍.网上资料时发现所有代码都含有if __name__=="__main__" ...
- Oracle的学习二:表管理(数据类型、创建/修改表、添加/修改/删除数据、数据查询)
1.Oracle表的管理 表名和列名的命名规则: 必须以字母开头: 长度不能超过30个字符: 不能使用oracle的保留字: 只能使用如下字符:A-Z, a-z, 0-9, $, # 等. Oracl ...
- oracle创建表空间、创建用户、授权、夺权、删除用户、删除表空间
表空间定义 表空间是为了统一ORACLE物理和逻辑上的结构而专门建立的,从物理上来说,一个表空间是由具体的一个或多个磁盘上数据文件构成的(至少1对1,可以1对多),从逻辑上来说一个表空间是由具体的一个 ...
- java循环嵌套与跳转语句(break,continue)
一 循环嵌套 嵌套循环是指在一个循环语句的循环体中再定义一个循环语句的语法结构.while.do…while. for循环语句都可以进行嵌套,并且它们之间也可以互相嵌套,如最常见的在for循环中嵌套f ...
- 将输出语句打印至tomcat日志文件中
tomcat-9.0.0 将程序中 System.out.println("------------这是输出语句System.out.println()-------- ...
- MySQL数据库 crud语句 ifnull() 创建新账户 备份数据库 一对多关系 多对多(中间表) 外键约束 自关联 子查询注意事项 DML DDL DQL mysql面试题 truncate与delete的区别
DML(data manipulation language): 它们是SELECT.UPDATE.INSERT.DELETE,就象它的名字一样,这4条命令是用来对数据库里的数据进行操作的语言 DDL ...
- SQL语句创建数据库,SQL语句删除数据库,SQL语句创建表,SQL语句删除表,SQL语句添加约束,SQL语句删除约束
创建数据库: CREATE DATABASE Test --要创建的数据库名称 ON PRIMARY ( --数据库文件的具体描述 NAME='Test_data', --主数据文件的逻辑名称 FIL ...
- 022. ASP.NET为DataSet中数据集添加关系及动态创建主子表和添加主子表关系
protected void Page_Load(object sender, EventArgs e) { string connectionString = "server=.;data ...
- MySQL Workbench 创建数据库,添加新表,添加字段
建立数据库 第一步: 第二步: 第三步: 如图弹出弹框,继续点击Apply按钮,最后点击Finish按钮完成数据库的建立 创建表与添加字段 双击!!! 一下刚刚建立好的数据库,然后再创建表,不然会出 ...
随机推荐
- WSL安装xfce4
参考:https://github.com/Microsoft/WSL/issues/637 安装组件 1. win10 上安装 Xming https://sourceforge.net/proje ...
- 微信公众号 iOS UITextFiled 用中文键盘输英文出现空格的解决方法
问题出现的现象: 最近公司开发微信公众号邀请码,需要对用户输入进行限制,允许输入的是字母和数字,其他输入会使用正则表达式禁止.但是有iOS用户反映在输入字母过程中,经常几个字母之后,邀请码不对,查看公 ...
- 用shell将时间字符串与时间戳互转
date的详细用户可以参考下面的 http://www.cnblogs.com/xd502djj/archive/2010/12/29/1919478.html date 的具体用法可以查看另外一篇博 ...
- 猪齿鱼_01_环境搭建(二)_微服务支撑组件部署(Docker形式)
一.前言 上一节,我们以源码形式部署好了猪齿鱼微服务组件,过程繁琐,且启动后占用了服务器大量的资源,对开发极其不友好.
- LRU与LFU比较
提到缓存,有两点是必须要考虑的:(1)缓存数据和目标数据的一致性问题.(2)缓存的过期策略(机制). 其中,缓存的过期策略涉及淘汰算法.常用的淘汰算法有下面几种:(1)FIFO:First I ...
- Android 之Navicat for SQLite 数据库介绍
Navicat for SQLite 是一套专为SQLite 设计的强大数据库管理及开发工具 Navicat for SQLite 是一套专为SQLite 设计的强大数据库管理及开发工具.它可以 ...
- Date扩展 正则匹配
<script> Date.prototype.format=function(){ var d=this; //严格匹配 yyyy-mm-dd hh-mm-ss var reg1=/yy ...
- Go语言开发中MongoDB数据库
伴随着移动端的兴起,Nosql数据库以其分布式设计和高性能等特点得到了广泛的应该用,下面将介绍下Nosql中的mongoDB在Go语言中的应用,在开发前,有必要了解下基础知识 在开发前,导入开发需要用 ...
- [转载] 视音频数据处理入门:RGB、YUV像素数据处理
===================================================== 视音频数据处理入门系列文章: 视音频数据处理入门:RGB.YUV像素数据处理 视音频数据处理 ...
- BZOJ - 3196 Tyvj 1730 二逼平衡树 (线段树套treap)
题目链接 区间线段树套treap,空间复杂度$O(nlogn)$,时间复杂度除了查询区间k大是$O(log^3n)$以外都是$O(log^2n)$的. (据说线段树套线段树.树状数组套线段树也能过?) ...