2009-03-11 3 views
0

У меня недавно возникли проблемы с LINQ2SQL, в первую очередь из-за того, что я не могу использовать методы CRUD. Я не знаю, что с LINQ ORM, я не могу обновить или удалить некоторый объект, уже сопоставленный в .dbml, поэтому я всегда исправляю это с drop и обновить .dbml, но теперь все еще не работает.Проблемы с LINQ

Проблема: Объект не является соратником уже

System.InvalidOperationException был поймана Message = "Нет себе Puede quitar уна entidad дие не с га asociado."
Source = "System.Data.Linq"
StackTrace: ан System.Data.Linq.Table`1.DeleteOnSubmit (TEntity лица) ан Resocentro.Informes.PlantillasMedicas.FormPlantilla.elimina (Int32 ОНР) ан D: \ cs_PlantillasMedicas \ Resocentro.Informes.PlantillasMedicas \ Resocentro.Informes.PlantillasMedicas \ FormPlantilla.xaml.cs: Linea 54 InnerException:

PD: LINQ XML PrimaryKey Атрибут

Фрагмент для получения объекта:

IsPrimaryKey="true" 

    private PLANTILLA getTemplateEntityFromModel(int codigoPlantilla) 
    { 
     using (DB db = new DB()) 
     { 
      PLANTILLA var = db.PLANTILLAs.FirstOrDefault(x => x.codigoplantilla == codigoPlantilla); 
      return var; 
     } 
    } 

Заранее благодарен!

ответ

3

Проверьте, что у вас есть первичный ключ, определенный для таблиц. Если вы этого не сделаете, добавьте их в таблицы или не сможете напрямую обратиться к разработчику. Linq2sql работает без первичных ключей, особенно при обновлениях, которые можно игнорировать без пауз.

Кроме того, вы извлекая объект, который вы пытаетесь удалить, как:

вар MyEntity = myContext.SomeEntities.Single (е => e.MyId == 1); myContext.SomeEntities.DeleteOnSubmit (myEntity);

+0

Я не знаю, сколько часов я потерял по этой самой проблеме - никаких сообщений об ошибках, никаких исключений, код будет выполняться нормально, но моя БД не имела бы обновленных значений. У моих таблиц были идентификаторы автоинкремента, но я не сказал SQL Server, что они были PK ... silent FAIL. – Matt

Смежные вопросы