寻找一种方法将以下 LinQ 写入实体查询作为 T-SQL 语句。
repository.ProductShells.Where(x => x.ShellMembers.Any(sm => sm.ProductID == pid)).ToList().ForEach(x => repository.ProductShells.Remove(x));
下面显然不正确,但我需要它来删除相应的 ProductShell 对象,其中任何 ShellMember 包含的 ProductID 等于传入的变量pid
。我认为这将涉及一个连接语句来获取相关的 ShellMembers。
repository.Database.ExecuteSqlCommand("FROM Shellmembers WHERE ProductID={0} DELETE FK_ProductShell", pid);
我为 FK_ShellMembers_ProductShell 外键启用了级联删除,因此当我删除 ProductShell 时,它将删除与其关联的所有 ShellMembers。我将把这个语句传递给 System.Data.EntityDatabase.ExecuteSqlCommand
方法。