簡體   English   中英

獲取DbContext Entity Framework Core 2.1中的實體模型列表

[英]Get List of Entity Models in DbContext Entity Framework Core 2.1

我正試圖找到一種方法來獲取我的DbContext中所有實體模型的列表。 例如,如果我在C#中定義了兩個名為Customer和Invoice的模型,通過代碼優先創建EF實體和數據庫,我現在如何查詢DbContext以獲取其中包含Customer和Invoice的List-即,那個環境中的所有實體? 我希望能夠調用一個返回所有實體的List的方法 - 而不是數據,只是一個實體列表。

在我看來,這應該是如此簡單,但要么它不容易,要么我錯過了一些東西 - 可能是后者。 ;-)。

有人可以指點我正確的方向嗎? 謝謝!!

您可以使用Model屬性獲取關聯的IModel ,然后使用GetEntityTypes方法枚舉所有IEntityType ClrType財產IEntityType會給你相關的類類型,如

DbContext db = ...;
var entityTypes = db.Model.GetEntityTypes().Select(t => t.ClrType).ToList();

IEntityType有許多有用的屬性和(擴展)方法,用於獲取有關主/備用鍵,外鍵,導航,屬性等的信息,以IEntityType

您可以在以下網址查詢文檔: https ://docs.microsoft.com/en-us/ef/core/querying/related-data

對於前者 如果您將博客和帖子作為兩個表格,那么您可以獲得相關表格,如下所示。 這取決於兩個表中關系的存在方式。

您還可以添加where子句以僅獲取選定的記錄。

using (var context = new BloggingContext())
{
    var blogs = context.Blogs
        .Include(blog => blog.Posts)
        .ToList();
}

暫無
暫無

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

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