Question

Supposons que j'ai ces tableaux:

Fruits
 - FruitID       INT PK
 - FruitName     NVARCHAR(30)
 - FruitStatusID INT FK: Statuses

Statuses
 - StatusID      INT PK
 - StatusName    NVARCHAR(30)

Comment puis-je mettre à jour le nom du fruit et son statut dans la base de données dans ces situations?:

  1. Mettre à jour un fruit provenant d'un précédent appel L2E
  2. étant donné un entier correspondant à FruitID (c’est-à-dire que je n’ai pas d’objet Fruit en entier pour commencer)

VB ou C # va bien, merci!

Était-ce utile?

La solution

Cela fonctionne mais n’est pas ce que j’espérais:

int StatusID = 4; // Some ID
Fruit.FruidIDReference.EntityKey = 
    New EntityKey("MyEntities.Statuses", "StatusID", StatusID)

Il existe sûrement une manière plus simple de faire cela qui ne nécessite pas de chaînes de codage en dur (qui introduit des exceptions d'exécution si je fais une faute de frappe).

Autres conseils

Si un objet Fruit est transmis à une autre méthode, vous pouvez:

  1. Passez une référence à l'objet context avec le fruit et appelez SaveChanges ()

  2. Apportez vos modifications à l'objet Fruit dans la méthode de niveau inférieur et appelez SaveChanges () dans la méthode d'appel (vous pouvez vérifier s'il a été modifié si vous souhaitez éviter les appels de base de données inutiles.)

Code:

//Change the name
FruitEntities fe = new FruitEntities();
Fruit f = fe.Friuts.First();
f.FruitName = "NewName";
fe.SaveChanges();

//Get a fruit by ID and change the status
//Statuses will need to be included as an Entity in your model with an association to Fruits
int Id = 2;
int newStatusID = 0;
FruitEntities fe = new FruitEntities();
Fruit f = (from x in fe.Fruits
           where x.FruitID == Id
           select x).First();
Status s = (from y in fe.Statuses
            where y.StatusID = newStatusID
            select y).First();
f.Status = s;
fe.SaveChanges();
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top