PetaPoco对int[]类型的请求不成功。

问题描述 投票:0回答:1

你好,我正试图在Microsoft SQL Server Management studio中进行一个取值,在我的一个列中有一个ints数组,我想根据另一个列的值进行检索。

我正在做这样的查询。

int[] appsId = db.Fetch<int[]>($"SELECT Apps FROM [dbo].[Group] WHERE Name = @0", user.Groups[0]).FirstOrDefault();

该表有以下(缩短的)信息。

Name    Apps
123     [356, 1589]

我得到的异常是:"Input string was not in a correct format"。

任何想法,谢谢

sql petapoco management-studio-express
1个回答
1
投票

可能需要在查询中解包那个数组。

SELECT Value 
FROM [dbo].[Group] 
CROSS APPLY 
( 
   SELECT CAST(VALUE AS INT) Value 
   FROM OPENJSON(APPS) 
) v
WHERE Name = @0

0
投票

解决方法如下:

Entities.Database.Group dbScope = db.Fetch<Entities.Database.Group>($"SELECT * FROM [dbo].[Group] WHERE Name = @0", user.Groups[0]).FirstOrDefault();

由于Group是定义Object的类 你可以映射你需要的字段,在这种情况下是Apps.

谢谢大家!

© www.soinside.com 2019 - 2024. All rights reserved.