Что такое API-интерфейс Entity Framework? - PullRequest
52 голосов
/ 13 июня 2011

Я продолжаю слышать о Entity Framework fluent-api, но я изо всех сил пытаюсь найти хорошую справку по этому вопросу. Что это?

Мы используем структуру сущностей и предоставленный инструмент моделирования. Это все что есть? Или это что-то другое?

Точно так же, если это не слишком широкий вопрос, что такое POCO? Я знаю, что это означает Plain Old CLR Objects, но что это значит для меня, как человека, который уже использует EF с инструментом конструктора моделей? Если этот вопрос слишком неопределенный, пожалуйста, не обращайте на него внимания. Я только учусь здесь, и любая информация, которую вы готовы предоставить, полезна.

Ответы [ 5 ]

56 голосов
/ 13 июня 2011

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] взят из Аннотации данных

5 голосов
/ 13 июня 2011

POCO означает «Простой старый объект CLR».

Статья о свободном API.

1 голос
/ 12 января 2012

Вы также можете проверить раздел API Code First Fluent на MSDN здесь http://msdn.microsoft.com/en-us/library/hh295844

0 голосов
/ 15 июня 2011

См. Параграф о классах POCO в http://www.asp.net/entity-framework/tutorials/creating-an-entity-framework-data-model-for-an-asp-net-mvc-application

По сути, в контексте EF классы POCO являются классами сущностей, которые не наследуются от класса Entity Framework EntityObject (который вы получаете по умолчанию в Database First или Model First). Как упоминается в одном из ответов, это упрощает сериализацию объектов, но некоторые методологии разработки и автоматического тестирования предпочитают работать с объектами, не имеющими ссылки на Entity Framework.

0 голосов
/ 13 июня 2011

Отвечая на ваш вопрос о POCO: в приложении, над которым я сейчас работаю, я использую POCO для передачи данных в мой интерфейс Silverlight (EF просто не обрезал его).По сути, я использую сущности, созданные EF-моделером, массирую их в сериализуемую дружественную версию, а затем отправляю их туда и обратно по проводам.POCO обеспечивают слой абстракции при необходимости.Я думаю, что это адаптация шаблона DAO к сериализации, а не использование его для доступа к БД, как это обычно делает шаблон DAO.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...