什么是实体框架流利的API?

问题描述

| 我一直在听有关Entity Framework fluent-api的信息,但是我一直在努力寻找一个很好的参考。它是什么? 我们使用提供的实体框架和建模工具。这就是全部吗?还是有所不同? 同样,如果不是很广泛的问题,什么是POCO?我知道它代表普通的旧CLR对象,但是对于已经在设计器模型工具中使用EF的人来说,这对我意味着什么?如果这个问题太含糊,请忽略它。我只是在这里学习,您愿意提供的任何信息都会有所帮助。     

解决方法

        Entity Framework 4.1引入了编写数据库模型的代码优先方法。这也称为POCO(普通旧CLR对象)。这个想法是,您可以从这些类构建数据库,而不是先构建数据库并从中创建模型。 有大量的优秀博客文章和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]
属性来自数据注释     ,        POCO代表普通旧CLR对象。 关于Fluent API的文章。     ,        您也可以在http://msdn.microsoft.com/zh-cn/library/hh295844上查看MSDN上的Code First Fluent API部分     ,        回答您的POCO问题:在应用程序中,我当前正在使用POCO将数据传递到Silverlight前端(EF并没有切断数据)。本质上,我使用EF建模器创建的实体,将它们按摩成可序列化的版本,然后通过导线来回发送它们。 POCO可以在需要时提供抽象层。我认为这是DAO模式对序列化的一种适应,而不是像DAO模式通常那样将其用于数据库访问。     ,        请参阅http://www.asp.net/entity-framework/tutorials/creating-an-entity-framework-data-model-for-an-asp-net-mvc-application中有关POCO类的段落 本质上,在EF的上下文中,POCO类是不从Entity Framework EntityObject类继承的实体类(默认情况下,这是在Database First或Model First中获得的)。正如其他答案之一提到的那样,这使得序列化对象变得更加容易,但是某些开发和自动测试方法更喜欢使用没有引用实体框架的对象。