C#Linq包含语句 - c#

我写了自己的对象Tag,如果要找到.Value,我想包含它(我想像在SQL中那样模拟WHERE IN)

public static List<Question> GetQuestionsIdsWithTags(List<Tag> tags)
        {
    IEnumerable<Question> res = from t in dataClasses.tags
                                    join
                                    qt in dataClasses.question_to_tags on t.id equals qt.tag_id
                                    join q in dataClasses.questions on qt.question_id equals q.id
                                    where tags.Contains<Tag>(new Tag(t.name))
                                    select new Question(q.text) { };

问题是,如果包含在查询中,我得到

The member 'Core.Literal.Value' has no supported translation to SQL.

其中Literal是Tag的基础。

我能做什么?

参考方案

您正在尝试执行new Tag(t.name),但是不能将其转换为SQL(数据库服务器无法创建Tag类的新实例)。也许这会工作:

IEnumerable<Question> res = from t in dataClasses.tags
                            join
                            qt in dataClasses.question_to_tags on t.id equals qt.tag_id
                            join q in dataClasses.questions on qt.question_id equals q.id
                            where tags.Select(x => x.name).Contains(t.name)
                            select new Question(q.text) { };

LINQ to XML语法 - c#

我有一个简单的POCO类,用于保存从XML文件提取的数据,该XML文件定义如下:public class Demographics { public string FirstName { get; set; } public string LastName { get; set; } public string MiddleName { get; set; …

LINQ RemoveAll代替循环 - c#

我有两个for循环,用于从列表中删除项目。我正在为这些循环寻找等效的LINQ语句for (Int32 i = points.Count - 1; i >= 0; i--) { for (Int32 j = touchingRects.Count - 1; j >= 0; j--) { if (touchingRects[j].HitTest(po…

LINQ中的动态查询 - c#

我在Web表单中有四个按钮,它们的目的分别是加载第一条,上一条,下一条和最后一条记录。他们通过获取表单中加载的当前ID并根据需要执行操作。我正在使用Linq to SQL。下面是我用于NEXT记录的代码,如果我想通过ID加载下一条记录,则该函数运行良好。var dx = new DataModelDataContext(); List<Dog> …

SQL Joins与Java代码? - java

我有这样的查询Select Folder.name from FROM FolderTable,ValidFolder, ValidFolderGroup, ValidUser, ValidLocation, ValidDepartment where ValidUser.LocationCode *= ValidLocation.LocationCode …

如何处理LINQ to Entities仅支持无参数的构造函数和初始化程序[重复] - c#

This question already has answers here: Only parameterless constructors and initializers are supported in LINQ to Entities (14个回答) 4年前关闭。 因此,当我尝试从Web Api获取数据时会发生这种情况:ExceptionMessa…