0

Je commence tout juste sur Entity Framework 4.1 Code-First. J'ai créé mes classes et DbContext, et ils fonctionnent parfaitement bien. En ce moment je veux lier mon ListView à mes Entités, avec l'aide d'un EntityDataSource, mais malheureusement il ne reconnaît aucune chaîne de connexion disponible! Je pense que le providerName doit être System.Data.EntityClient pour que cela fonctionne, mais je n'ai pas de modèle d'entité concrète pour faire référence à ...EntityDataSource avec Code-First Entity Framework 4.1

J'ai lu qu'une ObjectContext peut être « adapté » à partir du DbContext, qui à son tour peut être utilisé pour créer un ObjectDataSource. Je veux utiliser mon DbContext pour lier à mon ListView, cependant. Y a-t-il un moyen de le faire?

+0

duplication possible de [Comment lier le premier code source EF CodeDeDonnées à une source de données Asp.Net?] (Http://stackoverflow.com/questions/6327937/how-to-bind-ef-code-first-dbcontext-to -an-asp-net-datasource) –

Répondre

0

J'ai du mal à comprendre votre question ... Vous voulez spécifier la chaîne de connexion lorsque vous instanciez votre classe Context, c'est ça?

Vous pouvez créer une surcharge de votre constructeur de votre classe DbContext, comme

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

Puis, dans une approche de code d'abord, vous ne avez pas vraiment besoin ObjectContext, sauf pour les scénarios super-avancés, et la liaison de données n'est pas l'un d'eux, je suppose. Pour arriver à se lier à une collection dans votre classe de contexte, il suffit de mettre une propriété pour elle dans une classe ViewModel conçue pour votre écran, comme

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

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

Ensuite, vous pouvez lier votre ListView contre cette propriété, étant donné qu'il est référencé.

Espérons que cela aide, sinon donnez plus de détails.

Questions connexes