2012-09-23 31 views
4

我無法找到這個在線答案 - 請鏈接我,如果我忽略了任何資源。EF codefirst如何知道要爲哪個模型類創建表格?

我瞭解實體框架是如何codefirst作品。問題是:EF如何知道要爲哪個模型類創建表以及將哪個模型類視爲一個類?

例如,在使用VS 2012 Express Developer創建新MVC項目的示例MVC4應用程序中,賬戶模型中存在沒有表的類(LocalPasswordModel,LoginModel,RegisterModel等),並且EF知道不要爲這些類生成表。

如何EF知道這一點?

回答

5

實體框架看你DbContext類,並會爲您定義的每個DbSet<T>屬性表。

EF甚至不會看哪個不被的DbContext引用的任何類。

+0

非常感謝您的快速響應。新手在這裏,所以請原諒如果我的問題很愚蠢。你在幕後指的是什麼?我明白,我們可以擴展DBContext類,並執行您所指的自定義模型類,但是我沒有看到(從可用代碼開箱即用的MVC4應用程序)LoginModel或RegisterModel如何從AccountModels.cs避免使用EF創建表格。 – 9999bao

+1

@ 9999bao:EF不會看你所有的課程;它只是查看'DbContext'中的'DbSet's。由於DbContext沒有引用這些類,因此EF甚至不會看到它們。 – SLaks

+0

@slaks此規則的例外是導航屬性引用的實體類型,即使未在上下文中列出,它們也會轉換爲SQL中的表格。 –

相關問題