EF將資料庫轉成實體物件 沒有注釋的問題

2021-10-01 05:14:34 字數 2485 閱讀 5695

從資料庫到edmx(模型設計器)

從edmx到cs檔案(tt模版生成)

網路上找到比較多的教程,都是第二步的。

在edmx中,修改屬性→摘要。

string summary=string.empty;
在foreach裡面,將表的注釋取出來

if(entity.documentation !=null && entity.documentation.summary!=null)

summary=entity.documentation.summary;

else

summary="";

後續在

的中間,加入注釋

///

///

///

那麼,完整的**如下:

string summary=string.empty;

else

然後在

的上面新增注釋,完整**如下:

foreach (var edmproperty in ******properties)

else

#>

/// ///

///

上面是從摘要到實體的注釋過程。

可是,明明資料庫中已經寫好了注釋,這裡如果在模版裡再寫一遍,總感覺太麻煩。

那麼在上面的方法中,可以做一步擴充套件,那就是,直接從資料庫中獲取注釋。

具體**如下:

寫乙個獲取字段注釋的類,根據t4模版的語法,類要這麼寫:

public class mysqlsummaryhelper

;user id=;password=;database=information_schema;";

public datatable dbsummary = new datatable();

public mysqlsummaryhelper(string server,string account,string password)

}public string gettablecomment(string tablename)

'",tablename);

return this.dbsummary.select(selectsql).first()["table_comment"].tostring();

}public string getcolumncomment(string tablename,string columnname)

' and column_name=''",tablename,columnname);

return this.dbsummary.select(selectsql).first()["column_comment"].tostring();

}}#>

應該是比較好理解的,

專案中的引用dll

類似using語法,就是開啟命名空間

然後在裡面,寫乙個輔助類

例項化這個類,在構造引數中傳入server、account、password,就可以通過gettablecomment和getcolumncomment兩個方法去獲取欄位名了。

具體**如下:

1、例項化乙個物件,可以寫在summary附近

mysqlsummaryhelper summarydb = new mysqlsummaryhelper("127.0.0.1","root","123456");
2、還記得前面獲取類注釋和屬性注釋的時候,獲取不到注釋的處理麼,我自己寫了個字串進去。

現在可以將那個字串,換成方法的呼叫了,分別如下:

if(entity.documentation !=null && entity.documentation.summary!=null)

summary=entity.documentation.summary;

else

summary=summarydb.gettablecomment(entity.name);

if (edmproperty.documentation != null && edmproperty.documentation.summary != null)

else

這裡講解了大概的tt修改過程,以及修改的原因。

如果還有不理解的,建議搜尋t4語法與除錯技巧,花幾分鐘初步了解一下t4模版,想來會更好理解。

C 實體模型EF關聯資料庫

首先 我們要有對應的資料庫 實體物件 也就是類物件 實體物件類 model public class product productcomm public string name 建立時間 public datetime ctime 0正常 1已刪除 public int s public stri...

EF實體框架模型使用Linq獲取資料庫資料

ef實體框架模型對於處理資料庫提供了很大的方便。ef支援多種資料庫,如sql orcal db2等 能夠與asp.net wpf wcf等很好的整合。此外最方便的就是可以用linq語句實現資料庫操作。2 然後開始用linq查詢獲取資料庫資料,如下 public liststationproducte...

如何將檔案轉成流存入資料庫

stream filedatastream myfile.postedfile.inputstream 得到檔案大小 int filelength myfile.postedfile.contentlength 建立陣列 byte filedata new byte filelength 把檔案流填...