簡體   English   中英

什么是實體框架流利的 api?

[英]What is Entity Framework fluent api?

我不斷聽到有關實體框架 fluent-api 的消息,但我正在努力尋找一個好的參考。 它是什么?

我們使用提供的實體框架和建模工具。 這就是全部嗎? 還是有什么不同?

同樣,如果不是太寬泛的問題,那么 POCO 是什么? 我知道它代表普通舊 CLR 對象,但是對於已經使用設計器 model 工具的人來說,這對我意味着什么? 如果這個問題太模糊,請忽略它。 我只是在這里學習,您願意提供的任何信息都是有幫助的。

Entity Framework 4.1 引入了編寫數據庫模型的代碼優先方法。 這也稱為 POCO(普通舊 CLR 對象)。 這個想法是您可以從這些類構建數據庫,而不是先構建數據庫並從中創建 model。

有大量關於此的優秀博客文章和 MSDN 文檔。 一個好的起點是

http://blogs.msdn.com/b/adonet/archive/2010/12/14/ef-feature-ctp5-fluent-api-samples.aspx

http://weblogs.asp.net/scottgu/archive/2010/12/08/announcing-entity-framework-code-first-ctp5-release.aspx

http://weblogs.asp.net/manavi/archive/2011/03/27/associations-in-ef-4-1-code-first-part-1-introduction-and-basic-concepts.aspx

關於流利的 API,這基本上是使用 EF 類來構建您的數據庫,例如:

modelBuilder.Entity<Category>().HasKey(c => c.CategoryCode);

因此,您手動聲明Category表有一個名為“CategoryCode”的主鍵。 您還可以像這樣聲明 PK:

public class Category
{
    [Key]    
    public int CategoryCode { get; set;}
}

[Key]屬性來自Data Annotations

POCO 代表普通舊 CLR Object。

Fluent API上的文章。

您還可以在此處查看 MSDN 上的 Code First Fluent API 部分http://msdn.microsoft.com/en-us/library/hh295844

回答您的 POCO 問題:在我目前正在處理的應用程序中,我正在使用 POCO 將數據傳遞到我的 Silverlight 前端(EF 只是沒有削減它)。 本質上,我使用 EF 建模器創建的實體,將它們按摩成可序列化友好的版本,然后通過網絡來回發送它們。 POCO 可以在需要時提供抽象層。 我認為它是 DAO 模式對序列化的一種改編,而不是像 DAO 模式通常那樣將其用於 DB 訪問。

請參閱http 中關於 POCO 類的段落://www.asp.net/entity-framework/tutorials/creating-an-entity-framework-data-model-for-an-asp-net-mvc-application

本質上,在 EF 的上下文中,POCO 類是不從實體框架 EntityObject class 繼承的實體類(這是您在 Database First 或 Model First 中默認獲得的)。 正如其他答案之一所提到的,這使得序列化對象變得更加容易,而且一些開發和自動化測試方法更喜歡使用不引用實體框架的對象。

暫無
暫無

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

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