我有一张桌子User { UserId, Name, Age }和License { LicenseId, Name, IsActive }。另外,我有一个表UserLicense { UserId, LicenseId },可以连接这两个表,并记录所有持有许可证的用户。一个用户可以持有多个许可证,这些许可证在UserLicense表中显示为不同的行。
现在我需要从许可证表中删除一个特定的许可证。我不想彻底删除它,所以我标记了IsActive = false. 但是,我确实想从UserLicense表中删除该许可证 ID 的行。
我正在使用实体框架。
如果它是一个直接表,我会做这样的事情:
var lic = db.Licenses.Where(l => l.Id== licenseId).FirstorDefault();
db.Licenses.Remove(lic);
db.SaveChanges();
但是由于UserLicense是外键表,实体框架不允许我直接使用
public void DeleteLicensedUsers(Guid LicenseId)
{
db.UserLicenses.Where()
}
因为该模型不包含 UserLicense 的独立表,因为它只是一个外键表。
那么如何使用 Linq 和 EF6删除UserLicense特定表的所有行licenseId?
PIPIONE
相关分类