「Action」と「Permission」という 2 つのエンティティを使用して、Code First を使用してモデルを作成しています。
各アクセス許可は、1 つのアクションのみを指します。2 つのアクセス許可が同じアクションを指すことはできません。Action は、Permission によって指されていなくても存在する場合があります。
アクションはパーミッションを認識してはなりません。
私のコードは次のとおりです。
public Action
{
public Guid Id {get; set;}
public string Name {get; set;}
}
public Permission
{
public Guid Id {get; set;}
public string Name {get; set;}
public Action Action {get; set;}
}
また、Fluent API を使用してアクセス許可を構成しました。
modelBuilder.Entity<Permission>.HasRequired(p => p.Action).WithOptional()
.WillCascadeOnDelete();
アクションを削除しようとすると、次のエラーが発生します。
「削除済み状態のエンティティとの関係を追加することは許可されていません」.
最初にアクセス許可を削除してから、アクションを削除しようとしました。そのために、アクション ID を指定してアクセス許可を取得する必要がありましたが、次のエラーが発生しました。
var permission = (from p in context.Permissions.Include(p => p.Action)
where p.Action.Id == actionId
select p).Single();
「インデックス付きプロパティはサポートされていません」
私は何を間違っていますか?これをモデル化するためのより良いアプローチはありますか?
ありがとう!ニール