EF生成實體自動添加數據庫字段註釋

  咱們在用EF從數據庫生成模型的時候,默認實體類是沒有註釋的,可是咱們已經在數據庫字段添加說明了,能不能自動把註釋也拿過來?web

答案是:能。數據庫

那麼咱們開始ide

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

雙擊打開後發現如今是沒有註釋的。spa

而後下載此文件:GetSummery.ttinclude (這個文件沒有放下載連接,能夠去網上找找,也能夠給我留言評論我來給你)code

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

如今,在數據庫表字段添加說明或者表說明(表說明映射到EF中就是類的註釋),添加表說明代碼以下:blog

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

如今咱們打開GetSummery.ttinclude文件ip

找到 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

相關文章
相關標籤/搜索