これはほとんどの人にとってパンとバターだと思います..
多対多の関係をモデル化するための Roles、Permissions、および RolePermissions エンティティがあります。
public class RolePermission
{
[Key]
public int ID { get; set; }
//[Key, ForeignKey("Role"), Column(Order = 0)]
public int RoleID { get; set; }
//[Key, ForeignKey("Permission"), Column(Order = 1)]
public int PermissionID { get; set; }
//Navigational Properties
public virtual Role role { get; set; }
public virtual Permission permission { get; set; }
}
渡された RoleID と PermissionId に基づいて、特定の RolePermission を削除する ActionResult があります。
public ActionResult Remove(int Roleid, int Permissionid)
{
RolePermission rolepermission = db.RolePermissions
.Include(p => p.PermissionID == Permissionid)
.SingleOrDefault(p => p.RoleID == Roleid);
db.RolePermissions.Remove(rolepermission);
db.SaveChanges();
return RedirectToAction("Index");
}
上記の RolePermission rolepermission.. ステートメントは次のエラーで失敗します
The Include path expression must refer to a navigation property defined on the type. Use dotted paths for reference navigation properties and the Select operator for collection navigation properties.
Parameter name: path
..最初からコードの匂いがするので、私は驚かない.
私が求めているのは
Delete from RolePermission
Where RoleID = roleid
AND PermissionID = permissionid
ガイダンスはありますか?どうもありがとう