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綁定針對該屬性,因爲它的引用。

希望它有幫助,否則請給更多的細節。