0

我刚刚开始使用Entity Framework 4.1 Code-First。我创建了我的课程和DbContext,他们工作得很好。现在我想通过EntityDataSource的帮助将我的ListView绑定到我的实体,但不幸的是它不能识别任何可用的连接字符串!我想的providerName必须System.Data.EntityClient为它工作,但我没有具体的实体模型参照...带有Code-First实体框架的EntityDataSource 4.1

我已经阅读从DbContext,这反过来又可以使用一个ObjectContext可以“适应”创建一个ObjectDataSource。但是,我想用我的DbContext绑定到我的ListView。有什么办法可以做到这一点?

+0

[如何将EF代码第一个DbContext绑定到Asp.Net数据源?](http://stackoverflow.com/questions/6327937/how-to-bind-ef-code-first-dbcontext-to -an-ASP-网数据源) – 2012-01-27 08:47:20

回答

0

我很难理解你的问题......你想指定连接字符串,当你instanciate你的上下文类,是吗?

您可以创建你的DbContext类的构造函数的重载,像

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

然后,在代码优先方法,你并不真正需要的ObjectContext除了超高级的方案,并数据绑定不是我猜想的其中之一。要获得绑定到一个集合中的Context类,只是把一个属性它专为您的屏幕视图模型类,像

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绑定针对该属性,因为它的引用。

希望它有帮助,否则请给更多的细节。