什么是Entity Framework流畅的api?

Che*_*hev 52 c# orm entity-framework entity-framework-4 ef-fluent-api

我一直听说实体框架流利的api,但我很难找到一个很好的参考.它是什么?

我们使用实体框架和提供的建模工具.这就是全部吗?或者是不同的东西?

同样,如果问题不是太宽泛,POCO是什么?我知道它代表Plain Old CLR Objects,但对于我已经使用EF设计模型工具的人来说,这对我意味着什么呢?如果这个问题太模糊,那么请忽略它.我刚刚在这里学习,你愿意提供的任何信息都很有帮助.

Jas*_*ans 56

实体框架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);
Run Code Online (Sandbox Code Playgroud)

所以你手动说明该Category表有一个名为`CategoryCode'的主键.您也可以像这样声明PK:

public class Category
{
    [Key]    
    public int CategoryCode { get; set;}
}
Run Code Online (Sandbox Code Playgroud)

[Key]属性来自Data Annotations

  • 我不相信你错过了.但我想说使用流畅的API意味着您可以将所有数据库设置放在一个方法中,而不是在与不同类关联的属性中扩展该设置.所以这是你真正喜欢哪种方式的情况. (5认同)
  • Jason,如果我决定使用Data Annotations而不是流畅的api,我会错过一些大事.我刚刚开始使用MVC,这个主题对我来说是一个更大的曲线. (2认同)

Xai*_*oft 5

POCO代表Plain Old CLR Object.

第二十上流利的API.