2010-09-10 3 views
1

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.

Répondre

0

Vous n'avez pas fourni vos informations de couche de base de données.
La solution la plus simple consiste à faire de la colonne NotificationID une identité. Cela devrait aider.

+0

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

+0

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

+0

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

Questions connexes