我这里的代码有一些问题。我有这个方法来检查当前是否有任何书籍连接到某个类别,如果没有 - 您应该能够将其删除。当我检查没有书籍的类别和与之相关的书籍的类别时,这会起作用。
using(var db = new DatabaseContext())
{
foreach (var cat in db.BookCategories.Include("Books").Where(c => c.Id == CategoryId)) {
if(cat.Books.Count != 0)
{
Console.WriteLine("Category cannot be deleted, because there are still books connected to it");
} else
{
Console.WriteLine("Category can be deleted, because there are no books connected to it");
}
}
}
Run Code Online (Sandbox Code Playgroud)
但是,当我在 else 语句下添加附加、删除和保存更改时,我收到此错误“System.InvalidOperationException:'已经有一个与此连接关联的打开的 DataReader,必须首先关闭它。”
db.attach(cat);
db.remove(cat);
db.savechanges();
Run Code Online (Sandbox Code Playgroud)
我需要做什么才能通过这个?谢谢
我有一个超级简单的 GraphQl 查询,但我无法根据输入使查询动态化。假设您将在 javascript 中获得一个字符串,并将其传递给查询,它是如何完成的?以下面的示例为例,我如何替换产品中 Sku 字段上的硬编码字符串“3111”,而是插入变量 myString 中的值?当我尝试传递它时,我只是收到错误。
let myString = "3111"
`query getProductBySku {
site {
product(sku: "3111") {
id
entityId
name
sku
}
}
}`
Run Code Online (Sandbox Code Playgroud)