メイン オブジェクト定義の EntitySet に DB オブジェクトのセットがあります。これは追加と更新をうまく処理しますが、リストからアイテムを削除してもデータベースレコードが削除されないことがわかったので、データリポジトリオブジェクトにレコードを削除するメソッドを作成する必要がありました.使用されているデータコンテキストにアクセスできます。
この削除をメイン オブジェクトに持ち込めるかどうかを調べていたところ、関連付けに DeleteOnNull 属性が見つかりましたが、それを使用すると、「DeleteOnNull は、null 非許容にマップされたシングルトン関連付けメンバーに対してのみ true にすることができます」というエラーが表示されます。外部キー列」。私のコードは次のとおりです。
private EntitySet<UserSite> _userSites = new EntitySet<UserSite>();
[Association(Name = "User_UserSites", Storage = "_userSites", ThisKey = "UserID", OtherKey = "UserID", DeleteOnNull=true)]
public IList<UserSite> UserSites { get { return _userSites; } set { } }
私のユーザーサイトオブジェクトは
[Table(Name="UserSite")]
public class UserSite
{
[Column]//(IsPrimaryKey = true)]
public int UserID { get; set; }
[Column]//(IsPrimaryKey = true)]
public string Site { get; set; }
[Column]
public bool DefaultSite { get; set; }
[Column(IsPrimaryKey = true, AutoSync = AutoSync.OnInsert)]
public int UniqueID { get; set; }
}
すべてのデータ更新メソッドをメイン ユーザー オブジェクト内に保持するために DeleteOnNull を使用できますか? それともリポジトリ レベルで削除を処理する必要がありますか?