我不确定采用哪种最佳方法。 LINQ查询对我来说很简单,但是我在这里寻找最有效的方法。

我有2个表格,Sliders和SliderItems。 SliderItem具有指向滑块ID的FK。

我一直在这样的特定滑块上获取信息:

    public static List<Slider> GetSlider(Slider sItem)
    {
        DBContext db = new DBContext();

        if (sItem.Id != Guid.Empty)
        {
            var list = from tbl in db.Sliders
                       where tbl.Id == sItem.Id
                       orderby tbl.Id
                       select tbl;

            return list.ToList();
        }
    }


因此,我需要对主页执行的操作是将要填充到数据列表中的一组数据拉回。从而组合了与其一起的Slider + SliderItems。

我是否只是使用JOIN语句执行普通的LINQ查询,然后将它们扔回到返回到DataList的通用列表中?

赞赏任何想法和方向。

最佳答案

如果您的数据库已经具有适当的Sliders和SliderItems之间的外键关系,并且您的LINQ-to-SQL模型同时包括Slider和SliderItems,则搜索Slider会自动检索所有相关的SliderItems:

public static IEnumerable<SliderItems> GetSliderItems(Guid sliderId)
{
    using (DataContext dc = new DataContext())
    {
        Slider result = dc.Sliders.Single(s => s.Id == sliderId);

        return result.SliderItems;
    }
}

09-25 18:30