2009-03-11 7 views
0

の問題最近、LINQ2SQLに関するいくつかの問題がありました。最初はCRUDメソッドを使用できません。LINQ ORMの問題は何か分かっていません.dbmlにマップされているエンティティを更新または削除できません。これをドロップして.dbmlを更新しても、まだ動作しません。の問題LINQ

問題: "いいえSE puede quitar ウナentidad queの無SEヘクタールasociado" エンティティのSystem.InvalidOperationExceptionは キャッチメッセージ=だったすでに

関連付けされていません
ソース= "System.Data.Linq"
のStackTrace: System.Data.Linq.Table`1.DeleteOnSubmit(TEntity エンティティ) エンResocentro.Informes.PlantillasMedicas.FormPlantilla.elimina(のInt32 NRO)エンエン D:\ cs_PlantillasMedicas \ Resocentro.Informes.PlantillasMedicas \ Resocentro.Informes.PlantillasMedicas \ FormPlantilla.xaml.cs:リネア 54のInnerException:

PD:LINQ XML主キー項目

エンティティを取得するためのスニペット:

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はプライマリキーなしではうまく動作せず、特にサイレントに無視できるアップデートにはうまく機能しません。

また、あなたは次のように、削除しようとしているエンティティを取得している:

VAR myEntity = myContext.SomeEntities.Single(E => e.MyId == 1); myContext.SomeEntities.DeleteOnSubmit(myEntity);

+0

エラーメッセージも例外もなく、コードは正常に実行されますが、DBには値が更新されませんでした。私のテーブルはIDの自動インクリメントを持っていましたが、私はSQL ServerにPKのものであることを知らせていませんでした。 – Matt