J'utilise Entity Framework 4.1. J'ai un modèle normal .edmx qui mappe une classe Match à une table de base de données 'Match' et cela peut être accédé normalement en utilisant EF.Entity Framework Classes partielles Instancier par ID/Clé primaire
Cependant, je requièrent des propriétés personnalisées méthodes pour le match donc j'étendu cette aide d'une classe partielle et je peux ajouter mes propriétés, etc.
Tout cela fonctionne très bien, mais je ne peux pas savoir comment instancier une instance de ma classe de correspondance partielle par sa clé/ID primaire. c'est-à-dire que je peux passer l'Id dans le constructeur et que l'objet soit rempli avec toutes ses données de la base de données.
Je sais que nous pouvons faire ce qui suit pour remplir de code d'appel:
public Match PopulateforMatchId(int matchId)
{
var match = (from m in _db.Matches
.Include("TeamA")
.Include("TeamB")
.Include("Season")
.Include("Season.Competition")
where m.Match_ID == matchId
select m).FirstOrDefault();
return match;
}
Cependant ce n'est pas ce que je dois que ce n'est pas autonome au sein de la classe partielle elle-même, je besoin de se remplir, car d'autres propriétés de la classe partielle reposent sur le fait que l'objet lui-même a ses données en place avant de pouvoir être calculées.
Quelqu'un at-il des idées comment je peux le faire?
Merci
Kevin
Avez-vous regardé 'Attach'? (http://msdn.microsoft.com/en-us/library/bb896271.aspx) Toutefois, IMO, il semble que vous approchez de ce mauvais sens. Il vaudrait mieux laisser l'ORM créer l'objet, puis remplir les blancs (en utilisant peut-être des méthodes partielles pour appliquer les changements lors de la matérialisation) –
Merci pour cela, je vais aborder cela différemment étant donné qu'il semble que ce n'est pas la façon de procéder. – Kevin