Existe-t-il un moyen d'utiliser un type de données personnalisé dans l'entité renvoyée par Linq to SQL?Utilisation d'un type de données personnalisé dans Linq to SQL
Dire que j'ai un type de données comme ceci:
public struct CustomerNumber : IEquatable<string>
{
private string _value;
public static implicit operator CustomerNumber(string value)
{
return new CustomerNumber { _value = value };
}
...
}
Il définit également les opérateurs pour == = et ainsi de suite!.
Lorsque j'essaie de remplacer l'une des propriétés dans l'entité renvoyée, j'obtiens une exception Invalid cast from 'System.String' to 'CustomerNumber'
même si vous pouvez affecter le CustomerNumber à partir d'une chaîne.
Est-ce que ce n'est pas possible ou est-ce que je fais quelque chose de mal?
Edition - Précision:
Le CustomerNumber
est utilisé en tant que type de données sur l'entité qui obtient généré par le LINQ to SQL. L'exception se produit lors d'une tentative d'interrogation de la base de données. Ce n'est pas quelque chose que j'essaie de lancer, c'est quelque part dans la magie de LinqToSQL que les choses tournent mal.
Mon code ressemble à ceci:
var customers = DataContext.Customers;
Edit:
Il se avère que si votre struct met en œuvre un opérateur explicite cela fonctionne ou plutôt, il travaille avec une struct qui met en œuvre un explicite l'opérateur pour convertir de la chaîne au type mais pas si c'est pour convertir de System.Int32 au type.
Modifier à nouveau: Cela ne fonctionne toujours pas.
Pouvez-vous nous montrer le code où vous créez le CustomerNumber et essayer de changer une propriété? –
Mise à jour ma question avec des clarifications. –