簡體   English   中英

數據庫優先+ EF + POCO; T4代碼生成?

[英]Database First + EF + POCO; T4 Code Generation?

我正在使用數據庫第一種方法,使用實體框架,我剛剛閱讀了有關POCO In EF的文章。 現在:如何直接從數據庫生成POCO模板?

namespace My.Domain
{
    public class Entity
    {
        public virtual long EntityId { get; set; }
        public virtual string Example { get; set; }
        public virtual long NextId { get; set; }
        public virtual bool Lame { get; set; }
    }
}

事實上,我非常希望能夠生成我手動生成的相同內容,只需一步:

  • 將每個表的ObjectSet添加到ObjectContext ,每個表都包含它的字段,屬性getter和creation。
  • 創建POCO實體,最好是在另一個項目中,所有屬性映射包括關系,標記為虛擬的屬性以啟用代理,顯然在我選擇的命名空間中。

有沒有一種“簡單”的方法來使用T4模板來實現這一點,還是有其他工具可以做到這一點? 也許某種Custom Tool而不是EF附帶的Custom Tool ,但這是POCO導向的?

只要您使用EF 4.1,那么生成POCO對象就是“內置”的。 請參考這篇文章:

http://blogs.msdn.com/b/adonet/archive/2011/03/15/ef-4-1-model-amp-database-first-walkthrough.aspx

這只是一個小小的回歸到更古老,更冗長的方式

http://blogs.msdn.com/b/adonet/archive/2010/01/25/walkthrough-poco-template-for-the-entity-framework.aspx

第一種方法現在更多的是建議的方法,但我想我還會給你更舊的方法:)

希望這符合您的需求:)。 我不確定在指定的命名空間和項目中創建它。 這聽起來更像Code First(你可以做到並完美地連接到數據庫?),但你可能能夠將生成項目彎曲到你的心血來潮。 不過,這應該是朝着正確的方向發展

創建POCO實體,最好是在另一個項目中,所有屬性映射包括關系,標記為虛擬的屬性以啟用代理,顯然在我選擇的命名空間中。

實體框架默認模板不能放在單獨的程序集中,因為它需要配置和EDMX文件。

有沒有一種“簡單”的方法來使用T4模板來實現這一點,還是有其他工具可以做到這一點?

是的,實體接口生成器

https://entityinterfacegenerator.codeplex.com

該項目包含自定義的T4模板,可以為DbContext類和實體類生成接口和屬性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM