gpt4 book ai didi

c# - 从 Linq 查询返回数组

转载 作者:太空宇宙 更新时间:2023-11-03 23:03:29 24 4
gpt4 key购买 nike

我正在尝试将以下代码转换为返回数组结果。但是我无法让它工作。我是 Linq 框架的新手。

这是我的代码:

// GETAll api/category
public IEnumerable<Category> GetAll()
{
nopMass db = new nopMass();

var model = db.Categories.Where(x => x.ParentCategoryId == 0);

return model.ToArray();
}

这就是我想要它返回的内容

// GETAll api/category
public IEnumerable<Category> GetAll()
{
return new Category[]
{
new Category
{
ParentCategoryId = 1,
Name = "New Vehicles"
},
new Category
{
ParentCategoryId = 2,
Name = "Used Vehicles"
}
};
}

当我访问 HTML 中的第一个代码时,没有显示结果。第二个代码给出了输出。

这是Html和Jquery代码

<ul id="products" />

<script>
var uri = 'api/category';

$(document).ready(function () {
// Send an AJAX request
try
{
$.getJSON(uri)
.done(function (data) {
// On success, 'data' contains a list of products.
$.each(data, function (key, item) {
// Add a list item for the product.
$('<li>', { text: formatItem(item) }).appendTo($('#products'));
});
});
}
catch (e) {
alert(e.message);
}
});

function formatItem(item) {
return item.Name;
}

</script>

最佳答案

这是你重构的 LINQ 答案

// GETAll api/category
public IEnumerable<Category> GetAll() {
using(var db = new nopMass()) {

var cats = db.Categories
.Where(x => x.ParentCategoryId == 0)
.AsEnumerable()
.Select(cat => new Category {
ParentCategoryId = cat.ParentCategoryId,
Name = cat.Name
})
.ToArray();

return cats;
}
}

而且,如评论中所述,确保在使用后正确处理数据库上下文。

关于c# - 从 Linq 查询返回数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42192394/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com