1:1 の関係を持つ 2 つのテーブルがあります。エンティティ フレームワークのモデル ファースト アプローチを使用して作成しました。今、私はレコードを削除したいのですが、あるテーブルからは削除できず、他のテーブルからは削除できません。試してみると、次の例外が発生します。
AssociationSet 'FK_lm_ab_profile_lm_profile_master' から関係を追加または削除しています。カーディナリティの制約により、対応する「lm_ab_profile」も追加または削除する必要があります。
ABProfile との関係を持つプロファイル テーブルがあり、プロファイルと AbProfile から削除したい。どちらも profile_id を PK として使用し、ABProfile は profile_id を FK として使用します。
私のコード:
//Get the old profile to see if one already exists
var oldProfile = context.lm_profile_master.FirstOrDefault(p => p.profile_id.Equals(profileID));
lm_ab_profile ab = new lm_ab_profile();
//Check to see if user doesn't already exist
if (oldProfile != null)
{
//try and specify the relationship between profile and ABProfile using profileID
oldProfile.lm_ab_profileReference.EntityKey = new System.Data.EntityKey("luminusEntities.lm_ab_profile", "profile_id", profileID);
//remove found object from the database and persist changes
context.DeleteObject(oldProfile);
context.SaveChanges();
}
2 つのテーブルが関連していることを指定するにはどうすればよいので、一方からレコードを削除すると、もう一方のレコードも削除されます...モデルのカスケード関数用にテーブルを設定します。