实体框架:检查对象是否存在并检查它是否具有关联对象

时间:2013-05-21 07:19:42

标签: entity-framework entity exists associated-object

在文件和类别之间的多对多关系中,我想检查文件是否存在,如果存在,如果它有任何类别(因为它可能没有任何类别):

        public bool existsInDBAndHasCategories(string path)
    {
        using (WinFileContextContainer c = new WinFileContextContainer())
        {
            return c.File.Any((o => o.path == path));
        }
    }    

检查具有此路径的文件是否在数据库中有记录。我从这个网站的一个帖子得到了这个。说实话,我仍然不熟悉LINQ和lambdas,所以我不知道如何扩展它以给我任何类别的BOOLEAN。提前谢谢你。

2 个答案:

答案 0 :(得分:1)

您只需在方法中添加其他条件(假设您已将Categories定义为Category类中的File列表:

return c.File.Any((o => o.path == path && o.Categories.Any()));

答案 1 :(得分:0)

如果你不熟悉Lamba,在开始使用Linq查询中的lambda之前,先开始学习简单的LinQ。

你的代码应该像这样:

public bool existsInDBAndHasCategories(string path)
{
    using (WinFileContextContainer c = new WinFileContextContainer())
    {
        var query = from f in c.File
            where f.Path == path &&
            (f.Categories != null || f.Categories.Count != 0)
            select f;
        return (f.Count != 0)
    }
}