Je suis en train de créer une bibliothèque réutilisable à l'aide de .NET Core (visant .NETStandard 1.4) et j'utilise Entity Framework Core (je suis nouveau dans les deux cas). J'ai une classe d'entité qui ressemble à :
public class Campaign
{
[Key]
public Guid Id { get; set; }
[Required]
[MaxLength(50)]
public string Name { get; set; }
public JObject ExtendedData { get; set; }
}
et j'ai une classe DbContext qui définit le DbSet :
public DbSet<Campaign> Campaigns { get; set; }
(J'utilise également le modèle Repository avec DI, mais je ne pense pas que cela soit pertinent).
Mes tests unitaires me donnent cette erreur :
System.InvalidOperationException : Impossible de déterminer la relation représentée par la propriété de navigation 'JToken.Parent' de type JContainer'. Configurez manuellement la relation ou ignorez cette propriété dans le modèle. cette propriété du modèle
Existe-t-il un moyen d'indiquer qu'il ne s'agit pas d'une relation mais qu'elle doit être stockée comme une grande chaîne de caractères ?
0 votes
Je pense que vous devriez changer le type de
ExtendedData
astring
et ensuite stocker le JSON stringifié2 votes
@Michael J'ai pensé à cela mais je voudrais m'assurer qu'il s'agit toujours de JSON valide.
1 votes
@Alex - Si c'est la seule préoccupation pour vérifier s'il s'agit de JSON valide, pour plus de simplicité, vous pourriez ajouter une analyse syntaxique à la méthode set de votre propriété (c'est-à-dire essayer de la désérialiser) - et lancer une InvalidDataException ou une JsonSerializationException si elle n'est pas valide.