EntitySQL查询问题 [英] EntitySQL Query question

查看:75
本文介绍了EntitySQL查询问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试执行以下查询:

CreateQuery< ProjectTechnologyView>(SELECT VALUE ProjectTechnologyView(true,Technology.TechnologyId,Technology.Name)FROM [Technology] as tech)

我收到以下异常:'ProjectTechnologyView'无法解析为有效的类型构造函数或函数。,靠近函数,方法或类型构造函数,第1行,第36列。你能不能告诉我,我是什么做错了?这个实体SQL查询有什么不对?技术是数据库中具有列"TechnologyId"的表。和"Name",ProjectTechnologyView是一个派生自Technology类的类,由VS EDM Designer生成并使用属性ProjectId(bool)进行扩展。 TIA。

I'm trying to execute the following query:

CreateQuery<ProjectTechnologyView>(SELECT VALUE ProjectTechnologyView (true, Technology.TechnologyId, Technology.Name) FROM [Technology] as tech)

and I receive the following exception: 'ProjectTechnologyView' cannot be resolved into a valid type constructor or function., near function, method or type constructor, line 1, column 36. Could you please to tell me, what I'm doing wrong? What is incorrect in this entity SQL query? Technology is a table in the database with columns "TechnologyId" and "Name", ProjectTechnologyView is a class, derived from Technology class, generated by VS EDM Designer and extended with a property ProjectId (bool).  TIA.

推荐答案

我不确定你的意图是什么,所以这里有几个选项:

如果您正在尝试查询所有ProjectTechnologyView实例,您可以执行以下更简单的操作:

CreateQuery< Technology>(" [Technology]"。OfType< ProjectTechnologyView>();


如果要过滤bool属性为true的所有结果,可以执行以下操作:

CreateQuery< Technology>(" [Technology]" ).OfType< ProjectTechnologyView>()。其中​​("it.ProjectId == true");

如果你想要强制所有的"技术"实例是ProjectTechnologyView实例,您可以使用LINQ执行类似的操作:
在ctx.Technology中选择新的ProjectTechnologyView {TechnologyId = t.TechnologyId,Name = t.Name,ProjectId = true};

杰夫
I wasn't certain what your intent was, so here are a couple of options for you:

If you are trying to query for all ProjectTechnologyView instances, you can do something simpler like:

CreateQuery<Technology>("[Technology]").OfType<ProjectTechnologyView>();


If you want to filter all of the results where the bool property is true, you can do:

CreateQuery<Technology>("[Technology]").OfType<ProjectTechnologyView>().Where("it.ProjectId == true");

If instead you want to force all "Technology" instances to be ProjectTechnologyView instances you could do something like this with LINQ:

from t in ctx.Technology
select new ProjectTechnologyView { TechnologyId = t.TechnologyId, Name = t.Name, ProjectId = true };

Jeff


这篇关于EntitySQL查询问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆