具有代码优先实体框架4.1的EntityDataSource

时间:2012-01-27 01:44:33

标签: entity-framework entity-framework-4.1 ef-code-first dbcontext entitydatasource

我刚刚开始使用Entity Framework 4.1 Code-First。我创建了我的课程和DbContext,他们的工作非常好。现在我想在EntityDataSource的帮助下将我的ListView绑定到我的实体,但不幸的是它无法识别任何可用的连接字符串!我认为providerName必须是System.Data.EntityClient才能工作,但我没有具体的实体模型来引用...

我已经读过ObjectContext可以从DbContext“改编”,而ObjectDataSource可以用来创建DbContext。但是,我想使用我的{{1}}绑定到我的ListView。我有什么方法可以做到这一点吗?

1 个答案:

答案 0 :(得分:0)

我很难理解你的问题......你想在实例化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与该属性绑定,前提是它已被引用。

希望有所帮助,否则请提供更多详情。

相关问题