C# ExecuteQuery(CustomType,Query)返回初始化的CustomType的IEnumerable
我需要在数据库上执行运行时定义的SQL查询,并在datagrid上显示结果。 我正在使用此代码查询数据库。它应该返回运行时定义的customType对象的IEnumerableC# ExecuteQuery(CustomType,Query)返回初始化的CustomType的IEnumerable,c#,sql-server,ienumerable,datacontext,C#,Sql Server,Ienumerable,Datacontext,我需要在数据库上执行运行时定义的SQL查询,并在datagrid上显示结果。 我正在使用此代码查询数据库。它应该返回运行时定义的customType对象的IEnumerable List<dynamic> result; using (context = new DataContext(ConnStr)) { IEnumerable enumerable = context.ExecuteQuery(customType, query); result = enumera
List<dynamic> result;
using (context = new DataContext(ConnStr))
{
IEnumerable enumerable = context.ExecuteQuery(customType, query);
result = enumerable.Cast<dynamic>().ToList();
}
查询:
Select id from TestTable
ExecuteQuery返回的customType对象列表中,所有对象的id均为0。
我对context.ExecuteQuery也做了同样的操作,这次我在编译时定义了customType(运算符不处理类型实例),它按预期工作,并返回了合法ID列表。
我查看了msdn页面,发现了以下有趣的描述:
公共方法ExecuteQuery(字符串,对象[])执行SQL
直接查询数据库并返回对象
公共方法ExecuteQuery(类型、字符串、对象[])直接在上执行SQL查询
数据库
感谢您的帮助
更新:
我的SQL Server数据库中的测试表定义:
CREATE TABLE [dbo].[TestTable](
[Id] [int] IDENTITY(1,1) NOT NULL,
[StartDate] [datetime] NOT NULL,
[BasePath] [varchar](512) NOT NULL,
CONSTRAINT [PK_TestTable] PRIMARY KEY CLUSTERED
(
[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
(如果有任何语法错误,那就是输入错误)请发布
customType
的定义以及表的SQL查询和模式。
CREATE TABLE [dbo].[TestTable](
[Id] [int] IDENTITY(1,1) NOT NULL,
[StartDate] [datetime] NOT NULL,
[BasePath] [varchar](512) NOT NULL,
CONSTRAINT [PK_TestTable] PRIMARY KEY CLUSTERED
(
[Id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]