Depuis les types d'entités sont différentes, votre opération d'ajout tombera à coup sûr.
Vous aurez besoin d'un mappeur ou d'un opérateur de conversion (explicite/implicite) entre vos types d'entités je pense.
Pour être clair, la solution de conversation, supposons que vous avez Entity1
et Entity2
et les deux ont des propriétés, Property
, Property_1
, Property_2
et Property_3
. Je suppose que vous avez une stratégie de génération de code par défaut (pas POCO ou sth). Ensuite, vous pouvez ajouter des classes partielles Entité2 et entity1 avec operatior de conversion implicite, par exemple:
public partial class Entity2
{
public static implicit operator Entity2(Entity1 entity1)
{
return new Entity2()
{
Property = entity1.Property,
Property_1 = entity1.Property_1,
Property_2 = entity1.Property_2,
Property_3 = entity1.Property_3
};
}
}
Vous pouvez maintenant faire:
using (var provider = new Model1Container12())
{
Entity1 entity1 = new Entity1();
provider.AddObject(provider.Entity2Set.Name, entity1);
// or
provider.AddToEntity2Set(entity1);
}
La conversion sera faite implicitement que vous définissez dans l'opérateur de conversion définition.
Je ne sais pas si Entity Framework lui-même a une solution pour cette situation, mais la conversion semble être une solution pour moi. Ou vous pouvez également utiliser le type de chose AutoMapper. Je n'ai pas d'informations détaillées à ce sujet.
dire que je dois créer des instances d'entités distinctes pour chacun? l'une ou l'autre des entités ne peut pas être réutilisée pour ajouter une autre entité dans la table de base de données? Veuillez clarifier. – Aaron
Je suppose que vous devez créer une instance de type que vous voulez ajouter à votre contexte d'entité. J'ai mis à jour ma réponse. J'espère être utile. S'il vous plaît notifier si la réponse n'est pas claire, ou je me méprends sur la situation. –