Je possède ce tableau:Quelles sont les causes de l'échec de cet AutoSync membre?
create table dbo.NotificationsIn
(
NotificationID varchar(18) primary key,
ArrivalTime datetime not null default getdate()
)
insérer à comme ceci:
public void InsertNotification(NotificationsIn notification)
{
db.NotificationsIns.InsertOnSubmit(notification);
db.SubmitChanges();
}
où db est un LINQ DataContext.
je reçois l'exception après insérer un nouveau record:
System.InvalidOperationException: Membre non AutoSync. Pour que les membres soient auto-synchronisés après l'insertion, le type doit avoir une identité générée automatiquement ou une clé qui n'est pas modifiée par la base de données après l'insertion.
Dans le dbml, j'ai défini la propriété ArrivalTime AutoGenerated = True et Auto-Sync = OnInsert. J'ai également essayé Auto-Sync = Jamais, mais le résultat est le même.
Une idée de pourquoi je reçois cette exception? Merci.
La base de données est sql server 2k8. Je ne peux pas faire du NotificationID une Identité parce que sa valeur est importante; il est fourni par un système externe. – Eric
Ensuite, la meilleure solution consiste à appeler la méthode Refresh. La propriété AutoSync est destinée à être utilisée avec des propriétés générées automatiquement, Refresh n'a pas cette limitation. http://msdn.microsoft.com/en-us/library/system.data.linq.datacontext.refresh.aspx – Devart
Mais la propriété Auto-Sync de NotificationID est déjà définie sur Jamais. ArrivalTime est réglé sur Auto-Sync OnInsert, mais il est généré automatiquement. – Eric