Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无法创建System.Object的常量值_C#_Linq To Sql - Fatal编程技术网

C# 无法创建System.Object的常量值

C# 无法创建System.Object的常量值,c#,linq-to-sql,C#,Linq To Sql,当我点击列表dockMatches=ListprtQuery.ToList;行弹出错误,无法创建“System.Object”类型的常量值。在此上下文中仅支持基元类型或枚举类型。我之前已经返回了一个通用列表对象,所以我可能在寻找这个对象出现的原因 var prtQuery = (from p in db.PRTs join m in db.PROs on p.PRT_PRO_ID equals m.PRO_ID where p.PR

当我点击列表dockMatches=ListprtQuery.ToList;行弹出错误,无法创建“System.Object”类型的常量值。在此上下文中仅支持基元类型或枚举类型。我之前已经返回了一个通用列表对象,所以我可能在寻找这个对象出现的原因

var prtQuery = (from p in db.PRTs
                join m in db.PROs on p.PRT_PRO_ID equals m.PRO_ID
                where p.PRT_PRO_ID != pro_id
                select new HickeryDickeryDock
                {
                    Name = m.PRO_FirstName + ' ' + m.PRO_LastName,
                    DisplayName = m.PRO_DisplayName,
                    Gender = m.PRO_Gender,
                    Age = prm.PRM_AgeStart >= p.PRT_AgeStart && prm.PRM_AgeStart <= p.PRT_AgeEnd ? 2 : 0,
                    Huckelberry = SqlFunctions.CharIndex("Huckelberry", p.PRT_Finnery) > 0 ? 2 : SqlFunctions.CharIndex("Spontaneous", prm.PRM_FINNERY) == 0 ? 0 : 2
                }).Take(100);


List<HickeryDickeryDock> dockMatches = (List<HickeryDickeryDock>)prtQuery.ToList();

Name=m.PRO_FirstName+“”+m.PRO_LastName。这是导致它失败的原因。一旦我删除了+''+m.PRO\u LastName,它就起作用了。

p.PRT\u PRO\u ID和PRO\u ID的类型是什么?您能否减少代码以删除没有问题的位?例如,您可以删除投影中的大多数属性吗?编辑以避免如此多的水平滚动-请注意,您不需要强制转换prtQuery.ToList的结果;它已经是List.pro_id和prt_pro_id是包含guid值的nvarchar128字段。实际上,我删除了很多选择部分,但我将尝试使用我提供的部分来运行它,看看它是否有效。请注意,您不需要强制转换prtQuery.ToList的结果;它已经在列表中了。起初我没有这样做,但为了检查,我把它放进去了,因为这个错误对我来说没有意义,而且我在代码中看到了一些奇怪的事情。