小编Wil*_*ill的帖子

让所有孩子到一个列表 - 递归C#

C#| .NET 4.5 | 实体框架5

我在Entity Framework中有一个类如下所示:

public class Location
{
   public long ID {get;set;}
   public long ParentID {get;set;}
   public List<Location> Children {get;set;}
}
Run Code Online (Sandbox Code Playgroud)

ID是位置的标识符,ParentID将其链接到父级,Children包含父级位置的所有子级位置.我正在寻找一些简单的方法,可能递归地将所有"Location"和他们的孩子放到一个包含Location.ID的List中.我在递归地概念化这个问题时遇到了麻烦.任何帮助表示赞赏.

这是我到目前为止,它是实体类的扩展,但我相信它可以做得更好/更简单:

public List<Location> GetAllDescendants()
{
    List<Location> returnList = new List<Location>();
    List<Location> result = new List<Location>();
    result.AddRange(GetAllDescendants(this, returnList));
    return result;
}

public List<Location> GetAllDescendants(Location oID, ICollection<Location> list)
{
    list.Add(oID);
    foreach (Location o in oID.Children)
    {
            if (o.ID != oID.ID)
                    GetAllDescendants(o, list);
    }
    return list.ToList();
}
Run Code Online (Sandbox Code Playgroud)

更新

我最终在SQL中编写了递归,将其抛入SP,然后将其拉入实体.看起来更干净,比使用Linq更容易,并且根据评论判断Linq和Entity似乎不是最好的路线.感谢您的帮助!

c# linq recursion entity-framework

15
推荐指数
7
解决办法
4万
查看次数

从结构化数据构建JSON层次结构

C#| .NET 4.5 | 实体框架5

我有一个以ID,ParentID,Name形式从SQL查询返回的数据.我想获取该数据并将其解析为Hierarchical JSON字符串.到目前为止,它似乎更应该是一项艰巨的任务.因为我正在使用Entity,所以数据作为IEnumerable很好地回馈给我.现在我相信我只需要某种形式的递归,但我不太清楚从哪里开始.任何帮助表示赞赏.

数据返回为

id   parentId    name
1    1           TopLoc
2    1           Loc1
3    1           Loc2
4    2           Loc1A

代码是

public static string GetJsonLocationHierarchy(long locationID)
{
    using (EntitiesSettings context = new EntitiesSettings())
    {
        // IEnumerable of ID,ParentID,Name
        context.GetLocationHierarchy(locationID);
    }
}
Run Code Online (Sandbox Code Playgroud)

最终结果我希望是这样的:

{
    "id": "1",
    "parentId": "1",
    "name": "TopLoc",
    "children": [
        {
            "id": "2",
            "parentId": "1",
            "name": "Loc1",
            "children": [
                {
                    "id": "4",
                    "parentId": "2",
                    "name": "Loc1A",
                    "children": [
                        {}
                    ]
                }
            ]
        },
        {
            "id": "3", …
Run Code Online (Sandbox Code Playgroud)

c# json entity-framework hierarchy json.net

9
推荐指数
1
解决办法
1万
查看次数

Kendo Grid - 搜索后绑定数据

ASP.NET MVC 4 | .NET 4.5 | 剃刀| C#

我在页面顶部有一个文本框和一个按钮.下面是一个Kendo Grid,它绑定到我的视图模型中的List.当用户单击搜索按钮时,将发出jQuery ajax请求,并将数据作为JSON返回.我唯一的问题是如何将数据绑定到我的Kendo Grid?任何帮助表示赞赏.

@(Html.Kendo().Grid(Model.PurchaseOrder.LineItems)
    .Name("poSearchGrid")
    .Columns(c =>
    {
        c.Bound(x => x.LineNumber).Title("Line Number");
        c.Bound(x => x.Qty).Title("PO Qty");
        c.Bound(x => x.OpenQty).Title("Open Qty");
        c.Bound(x => x.QtyReceived).Title("Qty Received");
    })
    .Events(e => e.DataBound("onDataBound"))
    .DataSource(s => s.Ajax().Model(model => model.Id(i => i.ID)))
    )
Run Code Online (Sandbox Code Playgroud)

按钮单击Ajax调用

$("#btnSearch").on('click', function() {
console.log("click");
var searchText = $("#PONumber").val();

if (searchText == "") {
    alert("You must enter a search value");
    return;
}

    $.ajax({
        url: '@Url.Action("Search")',
        data: { poNumber: searchText},
        type: 'POST',
        dataType: "json",
        success: …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc grid jquery telerik kendo-ui

5
推荐指数
1
解决办法
7210
查看次数

SQL - 使用Group By时逗号分隔数据

我正在使用SQL Server和TSQL:

我想要做的是在另一列上使用group by时在一列上使用逗号分隔值.见下面的数据示例.

col1 --- col2

1121     abc
1123     aee
1335     afg
1121     def
1121     abc

我想在"col1"上分组并计算记录数,但如果数据不同,我还想在col2上连接.例如,使用值"1121"作为参考,请参阅下面的数据输出.

qty --- col1 --- col2

3       1121     abc, def
1       1123     aee
1       1335     afg

我想过可能使用COALESCE,但我不确定如何在另一列上使用group by时实现它.

任何帮助将不胜感激.

sql t-sql concatenation coalesce

3
推荐指数
1
解决办法
4079
查看次数

在Haskell中从函数构建列表

我是Haskell的新手,所以如果这是一个简单的问题,我道歉,但我无法在任何地方找到答案.

我想要做的是获取列表的第一个和最后一个元素,并将它们返回到新列表中.

我知道head [1,2,3,4]会回来1,我知道last [1,2,3,4]会回来4.但是,我如何将这两个结果放入如下列表中[1,4]?

谢谢.

haskell function list

1
推荐指数
1
解决办法
1113
查看次数