LINQ não atualizar em .SubmitChanges ()
-
03-07-2019 - |
Pergunta
Há alguma razão algo como isso não iria funcionar?
Esta é a lógica que tenho usado muitas vezes para atualizar um registro em uma tabela com LINQ:
DataClasses1DataContext db = new DataClasses1DataContext();
User updateUser = db.Users.Single(e => e.user == user);
updateUser.InUse = !updateUser.InUse;
db.Log = new System.IO.StreamWriter(@"c:\temp\linq.log") { AutoFlush = true };
db.SubmitChanges();
(updateUser.InUse é um campo bit)
Por alguma razão ele não está funcionando. Quando eu verificar o linq.log é completamente em branco.
Pode haver um problema com a minha .dbml? Outras mesas parecem funcionar bem, mas eu tenho comparado propriedades na .dbml e todos eles jogo.
É como se o db.SubmitChanges()
; não detecta nenhuma atualização a ser exigido.
Solução
A tabela pode não ser atualizado corretamente porque não tinha a chave primária. (Na verdade, tinha a coluna, mas a restrição não foi copiado quando eu fiz um SELECT INTO minha mesa dev). A classe DataContext requer uma chave primária para atualizações.
Outras dicas
É a propriedade InUse um "normal" na medida em que LINQ está em causa? (Por exemplo, não é gerada automaticamente ou qualquer coisa funk assim?)
Como alternativa, eu não acho que é um Nullable