此處詳細記錄了現實專案中多對多資料模型列表頁面和增刪改查頁面。
狼奔**生成器可以自動生成asp.net頁面及後台**。
生成的專案用到的技術有:jquery+mvc+entity framework。
實踐開發過程中,我們使用powerdesigner設計資料庫模型。狼奔**生成器就是讀取powerdesigner設計的資料庫模型,分析其中的表與表之間的關係模型,分析其中的表和字段的說明資訊中的關鍵字,自動生成不同的頁面。
單錶資料模型
自連線資料模型
一對一資料模型
一對多資料模型
一對多資料模型中的一張表是自連線
多對多資料模型
多對多資料模型中的一張表是自連線
查詢狀態
上傳工作流
圖表 1專案元件說明圖
採用mvc框架,使用jquery指令碼庫,控制項選用easyui。
wcfhost——服務宿主(後期擴充套件)
為對外的服務提供宿主,使用wcf技術,https通訊協議。
ibll——業務介面層
業務邏輯層的方法對外暴露的介面和服務契約。
bll——業務邏輯層
業務邏輯的操作,包括業務處理,事務,日誌。
dal——資料訪問層
資料庫訪問的操作,資料實體,業務實體,資料校驗,使用entity framework。
common——公共元件層
整個應用程式使用的公共輔助方法。
wfactivitys——工作流活動層(後期擴充套件)
定義了工作流需要的活動,使用微軟wf技術。
wfdesigner——工作流設計器(後期擴充套件)
可以讓實施人員自由配置工作流的設計器,使用微軟wpf技術。
業務需求:將採購計畫明細中的物資分發到不同的站點
採購計畫明細和分發之間有一張關聯表,這三張表就構成了乙個典型的"多對多資料模型"
下面我們以分發為例子分析"多對多資料模型"資料模型,**已在生成的檔案中,並且注釋詳備,此文不再贅述
採購計畫明細和分發之間是多對多的關係
設計表的時候,在"分發數量"欄位的注釋處寫上"查詢",另外"分發數量"欄位是int型別,所以呈現兩個輸入框,輸入範圍
model就是entity framework自動生成的實體
此層作為業務邏輯層方法的介面,也是wcf對外暴露的契約
資料字典類的業務邏輯寫在bll類庫中,事務使用transactionscope物件,fenfabll.cs類檔案裡面封裝了業務邏輯的操作方法,並且繼承了basebll
基類整個專案應該遵循的原則是:胖bll,瘦mvc
其中fenfa.cs檔案放置的是表的實體和實體元資料的驗證,而fenfarepository.cs檔案放置的是訪問資料庫的方法
業務實體在fenfa.cs檔案中的fenfa類,它是乙個分部 partial 類,內部可以自定義屬性,metadatatype屬性中指定了該實體屬性的校驗類fenfametadata,並且它繼承了ibaseentity介面(此介面暫時沒有任何成員);
fenfa.cs檔案中還有乙個fenfametadata類用於校驗fenfa類中的成員。注意校驗類需要引用using system.componentmodel.dataannotations;命名空間。
(後期擴充套件)
先選中一條,然後點選刪除
選擇分發
資料庫 表關係 多對一
如何確定表之間的關係 需要從實際需求中分析 第一步 從員工的角度來考慮 多個員工是不是可以屬於同乙個部門?員工的多條記錄是否對應部門的一條記錄?如果是 則可以確定 員工與部門是多對一 第二步 從部門的角度來考慮 多個部門是不是可以有同乙個員工?員工部門多條記錄是否對應員工的一條記錄?都不是 而是乙個...
flask 定義資料庫關係(多對多)
多對多 我們使用學生和老師來演示多對多關係 每個學生有多個老師,每個老師有多個學生。多對多關係示意圖如下 在例項程式中,student類表示學生,teacher類表示老師。在這兩個模型之間建立多對多關係後,我們需要在student類中新增乙個集合關係屬性teachers,呼叫它可以獲取某個學生的多個...
在MySQL資料庫建立多對多的資料表關係
一 問題 在業務中遇到這樣的情況 我有兩張無關表student和course。student表中的字段是 stu id 和stu name。如圖 course表中的字段是cour id和cour name。如圖 我想要查詢某個同學選了哪些課和某門課被哪些同學選了。這是資料庫中典型的多對多的問題,二 ...