亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Entity Framework建模的列控?cái)?shù)據(jù)管理研究

        2021-10-31 12:06:32李湘宜鐘遠(yuǎn)寧
        關(guān)鍵詞:數(shù)據(jù)庫(kù)模型

        陳 姣,李湘宜,鐘遠(yuǎn)寧

        (卡斯柯信號(hào)有限公司,北京 100160)

        國(guó)內(nèi)高鐵采用CTCS-2、CTCS-3級(jí)列控系統(tǒng),列控?cái)?shù)據(jù)是列控系統(tǒng)中各個(gè)子系統(tǒng)及其設(shè)備的數(shù)據(jù)源,包括信號(hào)數(shù)據(jù)、線路坡度、線路速度、應(yīng)答器信息、車站進(jìn)路數(shù)據(jù)表等,這些基礎(chǔ)數(shù)據(jù)的正確性與否,直接關(guān)系到行車的安全性。隨著國(guó)內(nèi)高鐵線路的不斷延伸,各列控系統(tǒng)對(duì)列控?cái)?shù)據(jù)管理的要求進(jìn)一步提高。

        Entity Framework技術(shù)是新一代微軟.NET平臺(tái)中數(shù)據(jù)存取技術(shù),是一種對(duì)象/關(guān)系映射(Object/Relational Map-ping,ORM)技術(shù),實(shí)現(xiàn)了采用關(guān)系模型來組織數(shù)據(jù)與實(shí)體業(yè)務(wù)對(duì)象間的一一映射,解決數(shù)據(jù)持久化問題,不但可以提高開發(fā)效率,還可以進(jìn)一步提高列控?cái)?shù)據(jù)管理的有效性。

        1 列控?cái)?shù)據(jù)組成

        列控工程數(shù)據(jù)主要包括正線信號(hào)數(shù)據(jù)表、線路速度/坡度表、橋梁隧道信息表、分相數(shù)據(jù)表、線路里程斷鏈明細(xì)表、車站信息表、應(yīng)答器位置表、進(jìn)路信息表、RBC信息表、線路坡度表、道岔信息表、大號(hào)碼道岔數(shù)據(jù)包發(fā)送條件檢查范圍表、里程系信息表、異物侵限表、車站表、站內(nèi)軌道區(qū)段信息表和接觸網(wǎng)分相數(shù)據(jù)表。

        2 Entity Framework技術(shù)介紹

        2.1 傳統(tǒng)方法

        一般而言,開發(fā)人員利用傳統(tǒng)技術(shù)進(jìn)行系統(tǒng)開發(fā)時(shí),需要和數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)交換,在.NET平臺(tái)中,數(shù)據(jù)存儲(chǔ)交換技術(shù)通常有ODBC、DAO、ADO、ADO.NET等幾種數(shù)據(jù)層訪問技術(shù),其中,開發(fā)者最常用的是手寫SQL語句,然后通過ADO.NET連接類與數(shù)據(jù)庫(kù)進(jìn)行交互,這是較為常見的數(shù)據(jù)庫(kù)開發(fā)技術(shù)。雖然這種技術(shù)接近底層,可以直接操作數(shù)據(jù)庫(kù),但也存在SQL操作失誤風(fēng)險(xiǎn),并且當(dāng)業(yè)務(wù)發(fā)生細(xì)小改變時(shí)也需要對(duì)數(shù)據(jù)庫(kù)訪問的SQL語言進(jìn)行大量的修改,因此傳統(tǒng)方法需要耗費(fèi)大量的時(shí)間和精力。

        針對(duì)這種現(xiàn)狀,Entity Framework技術(shù)能夠極大改善傳統(tǒng)技術(shù)的缺點(diǎn)。

        2.2 Entity Framework技術(shù)概述

        Entity Framework技術(shù)的核心是實(shí)體數(shù)據(jù)模型(Entity Data Model,EDM)?;趯?shí)體數(shù)據(jù)訪問的模型如圖1所示。

        圖1 Entity Framework訪問模型Fig.1 Entity Framework access model

        Entity Framework技術(shù)遵守對(duì)象/關(guān)系映射(ORM)的思想,抽象化數(shù)據(jù)結(jié)構(gòu),將每個(gè)數(shù)據(jù)庫(kù)對(duì)象都抽象成為應(yīng)用程序?qū)ο?entity),而數(shù)據(jù)的字段都轉(zhuǎn)換為屬性(property),關(guān)系轉(zhuǎn)換為結(jié)合屬性(association)。實(shí)體數(shù)據(jù)模型用于在實(shí)體框架基礎(chǔ)上生成應(yīng)用程序和數(shù)據(jù)的應(yīng)用,包括概念模型、存儲(chǔ)模型以及映射3大部分。概念模型主要負(fù)責(zé)訪問對(duì)象與屬性;存儲(chǔ)模型主要描述數(shù)據(jù)庫(kù)中的數(shù)據(jù)結(jié)構(gòu)體,比如表、主鍵、列、索引等,與Provider一起,負(fù)責(zé)實(shí)際對(duì)數(shù)據(jù)庫(kù)的訪問;映射將上方的概念模型層和下方的儲(chǔ)存模型層的數(shù)據(jù)結(jié)構(gòu)對(duì)應(yīng)。

        傳統(tǒng)方法與Entity Framework方法對(duì)比情況,如表1所示。

        表1 傳統(tǒng)方法與Entity Framework對(duì)比Tab.1 Comparison of traditional method with Entity Framework

        2.3 3種數(shù)據(jù)建模方式

        Entity Framework提供3種數(shù)據(jù)建模方式。

        1)Code-First模式

        該模式可以先構(gòu)建業(yè)務(wù)模型,然后通過映射XML文件,完成模型到數(shù)據(jù)庫(kù)的映射,生成數(shù)據(jù)庫(kù)表。與傳統(tǒng)的先建表再編碼的方式相比,更加符合以業(yè)務(wù)數(shù)據(jù)流為中心的設(shè)計(jì)思想,而不是以數(shù)據(jù)庫(kù)為中心進(jìn)行開發(fā)驅(qū)動(dòng)。

        2)Database-First模式

        該模式是比較傳統(tǒng)的數(shù)據(jù)建模方式,先完成數(shù)據(jù)庫(kù)模型設(shè)計(jì),再生成實(shí)體層的實(shí)體類,當(dāng)系統(tǒng)中僅存在一個(gè)數(shù)據(jù)庫(kù)時(shí),這種方法就比較簡(jiǎn)單,只需做好原數(shù)據(jù)庫(kù)與實(shí)體間的映射關(guān)系,EF可以自動(dòng)生成數(shù)據(jù)模型,且包含一一對(duì)應(yīng)的類及其屬性變量。

        3)Model-First模式

        該模式是利用Visual Studio設(shè)計(jì)出業(yè)務(wù)模型及它們之間的映射關(guān)系,然后再根據(jù)這些模型和映射關(guān)系生成數(shù)據(jù)庫(kù)表及代碼文件。

        3 列控?cái)?shù)據(jù)管理應(yīng)用實(shí)例

        列控系統(tǒng)中的關(guān)鍵設(shè)備及其仿真軟件:無線閉塞中心、列控中心、計(jì)算機(jī)聯(lián)鎖、臨時(shí)限速服務(wù)器等設(shè)備,均需按照列控?cái)?shù)據(jù)表進(jìn)行配置。通過Entity Framework技術(shù),可以對(duì)列控?cái)?shù)據(jù)表進(jìn)行建模。

        3.1 創(chuàng)建實(shí)體模型

        根據(jù)信號(hào)數(shù)據(jù)表,對(duì)于每個(gè)室外信號(hào)設(shè)備,如:應(yīng)答器、信號(hào)機(jī)、軌道區(qū)段等實(shí)體建立模型,本文對(duì)每個(gè)設(shè)備均創(chuàng)建了一個(gè)類。

        3.1.1 創(chuàng)建主鍵

        為保證數(shù)據(jù)庫(kù)中表的完整性,每個(gè)表中都須包含一個(gè)主鍵,需要在表中某列或多個(gè)列的組合上定義一個(gè)主鍵(PRIMARY KEY)進(jìn)行約束。

        Code-First 模式下,通過類的屬性變量名稱來定義主鍵:聲明實(shí)體模型類時(shí)若將某屬性變量命名為ID 或<類名>ID,則該屬性將被定義為主鍵代碼如圖2所示。

        圖2 創(chuàng)建主鍵Fig.2 Creating a primary key

        3.1.2 創(chuàng)建主外鍵關(guān)系

        在Code-First模式下,通過在相關(guān)聯(lián)的類中添加虛屬性來實(shí)現(xiàn)主外鍵關(guān)系。例如,本文中的SignalEntity類 和StationEntity類 分 別 表示信號(hào)機(jī)和車站類別,兩者間存在關(guān)聯(lián),可在SignalEntity類中添加StationEntity虛屬性,從而完成兩者的關(guān)系關(guān)聯(lián),同時(shí)在編譯過程中,程序后臺(tái)延遲加載數(shù)據(jù),代碼如圖3所示。

        圖3 創(chuàng)建主外鍵關(guān)系Fig.3 Creating a relationship of the primary and foreign key

        3.2 創(chuàng)建數(shù)據(jù)上下文

        為將實(shí)體模型映射到數(shù)據(jù)庫(kù)中,還需要?jiǎng)?chuàng)建數(shù)據(jù)上下文類:派生自System.Data.Entity.DbContext;本文創(chuàng)建了一個(gè)名稱為L(zhǎng)ineDataModel的數(shù)據(jù)上下文類,并定義了實(shí)體集屬性,代碼如圖4所示。

        圖4 創(chuàng)建數(shù)據(jù)上下文Fig.4 Creating a data context

        3.3 配置數(shù)據(jù)庫(kù)連接

        使用Code-First開發(fā)模式時(shí),將會(huì)在SQL Server Express實(shí)例中創(chuàng)建一個(gè)與DbContext名稱相同的數(shù)據(jù)庫(kù),并且可以自動(dòng)連接到這個(gè)數(shù)據(jù)庫(kù)。

        關(guān)系映射就是數(shù)據(jù)庫(kù)字段和C#對(duì)象屬性的中間橋梁,這種實(shí)體框架的核心工作就是通過這個(gè)映射生成操作數(shù)據(jù)庫(kù)的SQL語句,并調(diào)用ADO.NET,至此,就完成了列控?cái)?shù)據(jù)的EF建模。

        4 應(yīng)用前景

        基于Entity Framework建模的列控?cái)?shù)據(jù)管理可以應(yīng)用于仿真測(cè)試系統(tǒng)、數(shù)據(jù)測(cè)試系統(tǒng)、維護(hù)終端、計(jì)算機(jī)聯(lián)鎖、列控中心、無線閉塞中心的配置數(shù)據(jù)生成,按照結(jié)構(gòu)體導(dǎo)出的方式生產(chǎn)嵌入式系統(tǒng)所需的數(shù)據(jù)文件。

        同時(shí),也可作為列控?cái)?shù)據(jù)管理技術(shù)平臺(tái)的數(shù)據(jù)核心處理,可以依據(jù)相關(guān)規(guī)范,進(jìn)行數(shù)據(jù)驗(yàn)證工作。

        5 結(jié)束語

        基于Entity Framework方法的列控?cái)?shù)據(jù)建模,更加注重業(yè)務(wù)層面,加強(qiáng)了系統(tǒng)開發(fā)邏輯性和可維護(hù)性,與先建立數(shù)據(jù)庫(kù)再進(jìn)行編碼的傳統(tǒng)方法相比,在業(yè)務(wù)改變時(shí),不需要對(duì)數(shù)據(jù)庫(kù)訪問的SQL語言進(jìn)行大量修改,有效提高了開發(fā)效率。

        猜你喜歡
        數(shù)據(jù)庫(kù)模型
        一半模型
        重要模型『一線三等角』
        重尾非線性自回歸模型自加權(quán)M-估計(jì)的漸近分布
        數(shù)據(jù)庫(kù)
        3D打印中的模型分割與打包
        數(shù)據(jù)庫(kù)
        數(shù)據(jù)庫(kù)
        數(shù)據(jù)庫(kù)
        FLUKA幾何模型到CAD幾何模型轉(zhuǎn)換方法初步研究
        數(shù)據(jù)庫(kù)
        久久久国产视频久久久| 黑人大荫道bbwbbb高潮潮喷| 久久福利青草精品免费| yw193.can尤物国产在线网页| 久久精品国产亚洲av四区| 97久久国产亚洲精品超碰热| 国产精品麻豆成人av电影艾秋 | 国产mv在线天堂mv免费观看| 国产人成无码视频在线1000| 亚洲av本道一本二本三区| 99国产精品99久久久久久| 欧美日韩视频无码一区二区三| 精品一区二区三区久久久| 白色月光免费观看完整版| 亚洲av不卡无码国产| 国产成人综合亚洲精品| 亚洲欧美日韩精品久久亚洲区色播| 亚洲av一二三四五区在线| 国产精品h片在线播放| 破了亲妺妺的处免费视频国产| 人妻爽综合网| 日本久久久免费观看视频| 在线 | 一区二区三区四区| 久久综合色鬼| 午夜国产在线精彩自拍视频| 国产av无码专区亚洲av果冻传媒 | 波多野结衣av一区二区全免费观看 | 91青青草手机在线视频| 琪琪色原网站在线观看| 亚洲国产精品特色大片观看完整版| 99国产综合精品-久久久久| 黑人玩弄极品人妻系列视频| 成人国产精品一区二区网站公司| 欧美日韩亚洲成人| 国产喷白浆精品一区二区豆腐| 亚洲av片无码久久五月| 日日碰狠狠添天天爽超碰97| 亚洲熟妇中文字幕日产无码| 久草手机视频在线观看| 亚洲 另类 日韩 制服 无码| 午夜国产一区二区三区精品不卡|