EntityDataSource с Code-First Entity Framework 4.1 - PullRequest
0 голосов
/ 27 января 2012

Я только начинаю на Entity Framework 4.1 Code-First.Я создал свои классы и DbContext, и они отлично работают.Прямо сейчас я хочу привязать свой ListView к моим сущностям с помощью EntityDataSource, но, к сожалению, он не распознает любые доступные строки подключения!Я думаю, что providerName должно быть System.Data.EntityClient, чтобы оно работало, но у меня нет конкретной модели сущностей, на которую можно сослаться ...

Я читал, что ObjectContext можно "адаптировать" из DbContext, который, в свою очередь, может быть использован для создания ObjectDataSource.Однако я хочу использовать мой DbContext для привязки к моему ListView.Есть ли способ, которым я могу это сделать?

1 Ответ

0 голосов
/ 27 января 2012

Мне трудно понять ваш вопрос ... Вы хотите указать строку подключения при создании экземпляра вашего класса Context, не так ли?

Вы можете создать перегрузку вашего конструктора вашего класса DbContext, например

public MyContext(string connString) : base (connString)
   {
      Database.SetInitializer(...
      ...
   }

Тогда, в подходе Code-First, вам не нужен ObjectContext, за исключением супер-продвинутых сценариев, и связывание с данными не является одним из них, я думаю. Чтобы привязать коллекцию в своем классе Context, просто поместите для нее свойство в класс ViewModel, предназначенный для вашего экрана, например

public class MyViewModel
{
   private MyContext _context;
   public ObservableCollection<MyObject> MyObjects { get; set; }

   public MyViewModel()
   {
      _context = new MyContext();
      MyObjects = new ObservableCollection<MyObject>(_context.MyObjects.ToList());
   }
}

Затем вы можете привязать свой ListView к этому свойству, если на него есть ссылка.

Надеюсь, это поможет, иначе, пожалуйста, дайте больше деталей.

...