我尝试联合两个SQL表函数调用的结果集,并且我一直收到此错误 "' Distinct'操作不能应用于指定参数的集合ResultType。参数名称:参数"
到目前为止,我已经尝试了包括"在功能结果表中生成主键","添加[key]属性以产生功能结果的实体框架模型"似乎没什么用。
所以这是我的Linq语法,我将不胜感激任何帮助或建议。
var dataPlan = Context.fn_GetPlans(3, 1, userId);
var dataPlan1 = Context.fn_GetPlans(3, 2, userId);
var ddataPlan = dataPlan.Union(dataPlan1);
答案 0 :(得分:0)
好的,到目前为止,没有任何答案对我有用,因为我想要一种方法来保持结果的IQueryable,
所以接受这个事实,我回到了我的数据库,并在数据库函数上工作,自己返回多个函数的结果,并在数据库端将它们联合起来。
这对我有用,我希望其他人都有这个问题,在他们的工作中考虑这个解决方案。
答案 1 :(得分:0)
我遇到了同样的错误并通过创建我自己的类来解决它,该类具有与函数结果类型相同的属性,并将查询投影到该类,例如:
var dataPlan = Context.fn_GetPlans(3, 1, userId)
.Select(p => new MyClass
{
PropertyA = p.PropertyA,
PropertyB = p.PropertyB,
// ... etc...
});
我无法弄清楚为什么原来的课程不起作用,但新的查询可能是Uninon'ed就好了。