2011-10-25 52 views
0

我有一個現有的SQL數據庫,其中所有表都有一個ID列作爲主鍵。我可以從這個數據庫生成實體框架模型,並確保所有生成的類型都繼承自定義ID屬性的接口嗎?我可以從數據庫生成EF模型並讓所有模型實現一個接口嗎?

基本上,我想,我從數據庫返回的一切來實現這一點:

public interface IDatabaseTable 
{ 
    public int ID { get; set; } 
} 

回答

2

我希望你用的EntityFramework 4如果是的話,你需要使用T4模板生成你的實體和數據的情況下,你可能下載從這裏

http://visualstudiogallery.msdn.microsoft.com/23df0450-5677-4926-96cc-173d02752313

當你得到它的設置比你需要修改T4模板來生成繼承。

所以你會得到兩個tamplates一個模板正在生成數據上下文,另一個正在生成實體。

您需要修改第二個(實體生成模板),去線的實體.TT文件的41有添加繼承這樣的:

<#=Accessibility.ForType(entity)#> <#=code.SpaceAfter(code.AbstractOption(entity))#>partial class <#=code.Escape(entity)#><#=code.StringBefore(" : ", code.Escape(entity.BaseType))#> : IDatabaseTable 

在T4 POCO tamplates一些細節你可能會發現這裏

http://sharedtolearn.blogspot.com/2010/06/entity-framework-40-and-t4-templates-to.html

http://msdn.microsoft.com/en-us/data/gg558520

0

this MSDN page關於部分類。

總之,您可以爲您的EF實體創建一個部分類並實現您想要的任何接口。

下面是從MSDN頁的文檔:

從所有的部分類型定義合併以下:

XML comments 

interfaces 

generic-type parameter attributes 

class attributes 

members 

例如,請考慮以下聲明:

partial class Earth : Planet, IRotate { } 
partial class Earth : IRevolve { } 

它們相當於以下聲明:

class Earth : Planet, IRotate, IRevolve { } 
相關問題