2010-12-09 6 views
0

J'ai une application asp.net MVC récemment mise à niveau de la version 1.0 à la version 2.0. J'utilise un modèle de données Linq-to-Sql et dans beaucoup de cas, je les ai utilisés comme mes objets modèles, car il était simple et semblait fonctionner ...Liaison de modèle ASP.net MVC 2.0 - crée des objets enfants vides

J'ai une classe qui a une clé étrangère les relations avec deux tables enfants - ces tables enfants ne seront pas toujours remplies (c'est-à-dire que la clé étrangère est nullable).

Mon code (un peu simplifié) ressemble à ceci:

/// This would be the generated linq-to-sql class 
public class ModelObject 
{ 
    //Bunch of properties 

    public ChildObject { get; set; } 

    public ChildObject2 { get; set; } 
} 

public ActionResult Edit(int ID) 
{ 
    //Get the current saved object 
    ModelObject test = _service.GetModelObject(ID); 

    UpdateModel(test); 
} 

Depuis la mise à niveau 2.0, j'ai trouvé que l'appel updateModel a été instancié les deux objets enfants - mon enregistrement échoue alors, comme certains d'entre eux ont des champs vides qui ne sont pas nullables. Cela ne se passait pas avant la mise à niveau.

Existe-t-il un moyen d'empêcher cela (ou quelqu'un a-t-il un pointeur sur la raison pour laquelle cela a commencé à se produire depuis la mise à niveau)?

Répondre

0

Vous pouvez empêcher que cela se passe en spécifiant les propriétés que vous souhaitez exclure de la liaison en tant que paramètre dans votre appel UpdateModel():

UpdateModel(test, null, null, new [] { "ChildObject", "ChildObject2"}); 

Vous pouvez obtenir plus d'informations MSDN.

+0

J'ai essayé quelque chose comme ceci (j'ai fourni une liste de seulement les propriétés que je voulais relier), mais cela n'a pas fonctionné. – Paddy

Questions connexes