繁体   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