我有一个方法可以通过userId从我的Users表中删除用户:
public class User
{
[Key]
public int UserId { get; set; }
public string UserName { get; set; }
public virtual ICollection<UserRole> UserRoles { get; set; }
}
public class UserRole
{
[Key]
public int UserRoleId { get; set; }
public int UserId { get; set; }
public short RoleId { get; set; }
public virtual Role Role { get; set; }
}
主键userId还用作userroles表中的外键,其中包含UserRoleId(PK),UserId(FK)和RoleId(FK)。我不确定如何用一种方法敲除两个表中的两行。
提前致谢!
以下是确切的属性:
{{1}}
答案 0 :(得分:1)
在c#中实现实体之间的关系。例如,在User对象上创建Roles实体的集合。 ORM(我猜您正在使用EntityFramework或NHibernate)将自动删除依赖对象。
class User {
public virtual ICollection<UserRole> UserRoles { get; set; }
}
它应该被映射为多个关系。
在您的DBContext上,您必须添加:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<User>()
.HasMany(u => u.UserRoles)
.WithOptional().WillCascadeOnDelete(true);
base.OnModelCreating(modelBuilder);
}