在EF下使用基於T4模版的POCO實體生成器

2022-02-18 13:02:41 字數 1613 閱讀 1083

在entity framework 4.0提供了對poco(簡單傳統clr物件/plain old clr object)支援,這樣讓我們專注於業務邏輯和更有效的進行單元測試.並且poco不需像預設ef實體一樣要繼承才能實現,所以可以更靈活的切換.

本文將介紹如何自動生成poco並替換ef生成的實體.實現兩者的分離,獨立於ef存在.

(本文使用的是1.1版於2010/2/19更新)

使用poco實體生成器

1.本文使用northwind示例資料庫,因為使用poco作為實體,所以需要關閉ef自帶模型生成器

2.使用poco生成實體,在edmx空白處點選右鍵新增(也可以手動新增,但需修改模版檔案使其與edmx對應.)

3.點選後開啟頁面:

4.生成解決方案如圖:

5.本專案建立的是控制台程式,現在就可以試試使用poco來獲取資料了!

6.執行效果如圖:

至此就完成了使用poco替換ef原來的實體生成器.

但僅僅這樣是還不夠的,應該實現根本上的解耦.

專案上的分離

新建基礎類新增ef並使用poco

新建實體了,如圖將基礎類的poco實體移至實體類中.

這樣修改之後顯然是編譯不能通過的,如圖:

這是由於沒有找到相應實體(被移動到entities當然找不到)

解決:1.修改northwind.context.tt,新增using引用 using pocodemo.entities;  並新增響應專案引用關係

2.修改northwind.tt的第22行string inputfile = @"northwind.edmx";

修改為string inputfile = @"..\\pocodemo.infrastructure\\northwind.edmx";

這樣才能正確找到edmx檔案來生成**.

最終執行效果與之前相同.

後記這個t4模版可以根據自己的專案需要做相應的調整.

若以後edmx發生變化,只需點選要tt檔案點選儲存,就將自動重新整理生成的**.

SqlSugar框架T4模板的使用

一 t4模板說明 1.t4模板是用來生成model層實體類的 2.檔案字尾為.tt 3.需要修改配置主要有 引用的sqlsugar.dll的位置 生成實體類的位置及生成實體類的命名空間 4.t4模板生成 對資料庫有要求,資料庫應該是不區分大小寫的,如果你建立的資料庫是否區分大小寫的 chinese ...

11 10 08 功能強大的T4文字模版

希望您至少能意識到即使有 自動生成器,但資料庫結構變更等因素也會給我們帶來不少的麻煩。這種直接放到專案裡.tt檔案的好處自然不用多說了。有特別的業務需求,在.用partial類來實現,免得模板檔案自動更新 時將手寫的 覆蓋掉。看一下下面這個示例你應該就會明白了 新建乙個控制台應用程式,刪除裡面的所有...

使用T4模板為EF框架新增資料庫實體注釋

新建getsummery.ttinclude assembly name system.core assembly name system.data import namespace system.data.sqlclient string constr data source 127.0.0.1 ...