EF生成實體自動添加資料庫欄位註釋

来源:https://www.cnblogs.com/nevergiveup1115/archive/2019/04/11/10693389.html
-Advertisement-
Play Games

我們在用EF從資料庫生成模型的時候,預設實體類是沒有註釋的,但是我們已經在資料庫欄位添加說明瞭,能不能自動把註釋也拿過來? 答案是:能。 那麼我們開始 首先隨便開一個ASP.NET MVC項目,我們添加ADO實體數據模型。添加完成後我們打開userinfo.cs(這裡我的模型名稱為userinfo) ...


  我們在用EF從資料庫生成模型的時候,預設實體類是沒有註釋的,但是我們已經在資料庫欄位添加說明瞭,能不能自動把註釋也拿過來?

答案是:能。

那麼我們開始

  首先隨便開一個ASP.NET   MVC項目,我們添加ADO實體數據模型。添加完成後我們打開userinfo.cs(這裡我的模型名稱為userinfo)如圖:

雙擊打開後發現現在是沒有註釋的。

然後下載此文件:GetSummery.ttinclude (這個文件沒有放下載鏈接,可以去網上找找,也可以給我留言評論我來給你)

嗯,現在下載完文件後把他解壓後copy到和Model1.edmx同一目錄下,如圖:

現在,在資料庫表欄位添加說明或者表說明(表說明映射到EF中就是類的註釋),添加表說明代碼如下:

1 EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'註釋的描述' ,@level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'要註釋的表名'

現在我們打開GetSummery.ttinclude文件

找到 string ConnectionStringName = "MyConn"

這是資料庫連接名,在這裡我改為string ConnectionStringName = "ConnStr"  

然後在根目錄下web.config文件<connectionStrings>節點下配置資料庫連接(這個連接是GetSummery.ttinclude的資料庫連接,並不是你自己的連接字元串,所以不要省略)

1 <add name="ConnStr" connectionString="server=.;uid=sa;pwd=資料庫密碼;database=userinfo" providerName="Syste4m.Data.SqlClient"></add>

配置後,關閉GetSummery.ttinclude。

打開Model1.tt。

在Model1.tt  上方添加 <#@ include file="GetSummery.ttinclude" #>,如圖:

繼續,找到<#=codeStringGenerator.EntityClassOpening(entity)#> 在它上方添加

/// <summary>
/// <#= getTableSummery(code.Escape(entity)) #>
/// </summary>

如圖:

繼續,找到<#=codeStringGenerator.Property(edmProperty)#> 在它上方添加

/// <summary>
/// <#= getColumnSummery(code.Escape(entity),code.Escape(edmProperty)) #>
/// </summary>

如圖:

到此,我們ctrl+s 保存。然後打開我們的實體類 userinfo.cs  發現我們在資料庫加的說明已經自動註釋上去了。如圖:

如果我們在資料庫更新了我們的註釋說明,那麼我們,在打開Moedl1.tt 文件,然後在ctrl+s保存一下類就更新了。

謝謝!好了,該睡覺了。

23:23:16


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 今天給大家帶來一篇如何評價模型的好壞以及模型的得分 最下麵的代碼最有用 一、錯誤率與精度(accuracy 準確) 錯誤率和精度是分類任務中最常用的兩種性能度量,既適用於二分類任務,也適用於多分類任務。錯誤率是分類錯誤的樣本數占樣本總數的比例,精度則是分類正確的樣本數占樣本總數的比例。 from s ...
  • 上一篇講到方法的調用和簡單的構造方法,今天繼續加深,加參數或者該參數; package sklx; public class Car{ //設三個屬性 private String 品牌; private int 價格; private String 顏色; //修改屬性參數方法 public Ca ...
  • 我們面試中經常會被問到多線程相關知識,這一塊內容往淺了說大家都會,但是一問到底層實現原理,我們往往就一臉懵逼。 這段時間準備好好學習多線程,接下來會寫一系列關於多線程的知識。 我們首先要瞭解線程,百度百科這麼介紹:線程(thread)是操作系統能夠進行運算調度的最小單位。它被包含在進程之中,是進程中 ...
  • 思路 **先考慮一條鏈的情況怎麼做。** 因為只有兩個子樹,並且兩個子樹都是鏈。所以可以把這兩條鏈找出來,然後$sort$一下。合併起來。 **然後推廣到樹上** 對於每一棵樹都可以按照和上面同樣的方法合併成一條鏈。 ...
  • 一. 概述 本篇開始進入IS4實戰學習,從第一個示例開始,該示例是 “使用客戶端憑據保護API”,這是使用IdentityServer保護api的最基本場景。該示例涉及到三個項目包括:IdentityServer項目、API項目、Client項目,都有自己的宿主,為了方便開發,放在了一個解決方案下( ...
  • 導入導出的方法以及引用,可以自行創建一個幫助類 using System;using NPOI.SS.UserModel;using NPOI.XSSF.UserModel;using NPOI.HSSF.UserModel;using System.IO;using System.Data;usi ...
  • 背景 1. 基於之前 "基於Log4Net本地日誌服務簡單實現" 實現本地日誌服務,但是隨著項目開發演進,本地日誌服務滿足不了需求,譬如在預發佈環境或者生產環境,不可能讓開發人員登錄查看本地日誌文件分析。 2. Kafka+ELK日誌服務套件,可以線上日誌服務可以解決上述問題,並且提供豐富報表分析等 ...
  • 1. 下載windbg並安裝。 我下載的是 Windbg 6.12。註意,windbg分32位和64位,由分析環境的位數決定。我這裡安裝的是32位的。安裝過程很簡單,一路next就可以。 2. 準備被調試的程式。 新建一個C#控制台程式,使用如下代碼。編譯~ class Program { stat ...
一周排行
    -Advertisement-
    Play Games
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...