Код сначала связывается с базой данных с EntityFramework 4 - PullRequest
0 голосов
/ 07 декабря 2010

Я углубляюсь в код EntityFramework 4, прежде всего, из подхода сущностей, и я застрял в том, как взять ObjectContext / Entities и связать их с базой данных.

Я смотрел различные сайты на [msdn] [1] и [блоги] [2] о том, как использовать все это, но все они не в состоянии говорить о том, как создать базу данных, в которую будут сохраняться сущности, или не принимают код вначале.Я знаю, что могу создать файл edmx и сгенерировать sql из этого, но так как я пишу свои сущности сначала, этот файл пуст и через конструктор я не вижу способа добавления моих сущностей без дублирования усилий (при создании всех сущностей /поля и т. д.).

Похоже, что класс EntityConfiguration не существует в полной версии Entity Framework.Похоже, что это только в CTP, который я НЕ использую (во многих примерах в Интернете используется CTP).

Кроме того, следующий контекст принимает строки, которые никоим образом не относятся к edmx илибаза данных.

public class EntityContext : ObjectContext
{
    public EntityContext()
        : base("name=ExampleEntities", "ExampleEntities")
    {
        ContextOptions.LazyLoadingEnabled = true;

        Users = CreateObjectSet<User>();
    }

    public IObjectSet<User> Users { get; set; }
}

Итак, вопрос в том.

  1. Как создать схему базы данных, которая сопоставляется с моими сущностями?
  2. Должен ли я вообще использовать файл edmxили создать свой собственный файл базы данных (.mdf)?
  3. Если я использую файл edmx, как легко добавить первые объекты кода в код?
  4. Как ObjectSets в ObjectContext сопоставляются сбаза данных?

Спасибо

EDIT Я использую VS2010 professional и классы, которые идут с этим.Я вижу, что CTP4 отсутствует, поэтому я предполагаю, что версия RTM еще не вышла.Это правильно?

Ответы [ 2 ]

0 голосов
/ 07 декабря 2010

Похоже, мне нужно найти CTP4 здесь

Я также следовал за прохождением

0 голосов
/ 07 декабря 2010

Добавьте это в событие application_start для создания базы данных:

Database.SetInitializer<YourObjectContextClass>(new RecreateDatabaseIfModelChanges<YourObjectContextClass>());
...