我有一个通用对象,用户可以用不同的数据类型来创建该对象,例如:用户可以使用所需字段创建计算机对象。我已经设计了数据库,并且使用了能够正常运行的数据透视表(如下所示)进行了查询,因此结果如下: “ https://i.imgur.com/kFi8Yvj.png”
我是否应该找到另一种方式,例如将所有数据加载到c#中而不进行数据透视并将数据合并到javascript中?
我尝试使用此方法Entities.Database.SqlQuery,然后尝试返回json。结果包含3个元素的列表,但元素为空。
这是sql查询:
DECLARE @cols NVARCHAR(MAX), @query NVARCHAR(MAX);
set @cols =
STUFF(
REPLACE(
(
SELECT '#!' + QUOTENAME(ocf.Name) AS 'data()'
from ObjectCustomField ocf
where ObjectTypeId = 1
FOR XML PATH('')
),' #!',',')
, 1, 2, '');
SET @query = 'SELECT ObjectId,Name '+@cols+',MainPhoto
from
(
select o.ObjectId,o.Name,o.MainPhoto,ocfd.ObjectCustomFieldName,ocfd.Value
from CustomObject o
join ObjectCustomFieldData ocfd on o.ObjectId = ocfd.ObjectId
where ObjectTypeId = 1
)a
PIVOT
(
max([value])
for ObjectCustomFieldName
in ('+@cols+')
)
as PivotTable';
EXECUTE (@query);