Проблемы с LINQ - PullRequest
       13

Проблемы с LINQ

0 голосов
/ 11 марта 2009

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

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

System.InvalidOperationException было поймал сообщение = "Нет se puede quitar una entidad que no se ha asociado. "
Источник = "System.Data.Linq"
Трассировки стека: ru System.Data.Linq.Table`1.DeleteOnSubmit (TEntity юридическое лицо) en Resocentro.Informes.PlantillasMedicas.FormPlantilla.elimina (Int32 nro) en 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;
        }
    }

Заранее спасибо!

1 Ответ

3 голосов
/ 11 марта 2009

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

Кроме того, вы извлекаете сущность, которую пытаетесь удалить, например:

var myEntity = myContext.SomeEntities.Single (e => e.MyId == 1); myContext.SomeEntities.DeleteOnSubmit (MyEntity);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...