实体框架 - 对多维数组的自定义查询?

时间:2016-09-16 16:05:02

标签: c# .net entity-framework dbcontext

我想获取数据库并获取字符串数组列表。我做..

List<string[]> results = new List<string[]>();
results = dbContext.Database.SqlQuery<string[]>("select one, two from myTable").ToList();

我有一个例外

"The result type 'System.String[]' may not be abstract and must include a default constructor."

但我不想创建新的抽象类型。这只是一张简单的地图。两列。

实现这一目标的最佳方式是什么?

1 个答案:

答案 0 :(得分:0)

将要用来代替TElement的类应该有一个默认构造函数,以便SQLQuery方法能够在将其添加到List之前对其进行初始化。

因此,如果您有一个名为Person的类,则SQLQuery方法会执行

Person p = new Person();

在内部,然后它将填充其属性

Person.One = .... ;
Person.Two = .... ;

而不是像上面这样的类,你想使用string类型的数组。问题是这个类没有默认的构造函数。我们可以创建一个新数组

string[] someStrings = new string[10];

但我们无法创建一个字符串数组,如下所示

string[] someStrings = new string[];

因为我们需要指定这个数组的大小。

我担心你无法实现你想要做的事情,你需要使用一个带有默认构造函数的类来代替string[]

相关问题