如何在linq中直接执行SQL查询
在使用VS 2008的C#中,我有一个查询,在这个查询中我加入了多个表,所以我不知道类型,我想知道如何在linq中直接运行sql查询。
IEnumerable results = db.ExecuteQuery("sql query")
我上面的查询工作正常,但我想避免类型,我想写
var results = db.ExecuteQuery("sql query");
有没有办法写呢?
提前致谢。
您需要从查询结果中指定要映射到的类型。 您可以使用System.Type
对象,而不是将其静态指定为generics类型参数:
var results = db.ExecuteQuery(typeof(Customer), "sql query ");
如果您只想要一个普通的ADO.NET DataReader,您可以使用DataContext.Connection
属性:
using (var cmd = db.Connection.CreateCommand()) { cmd.CommandText = "sql query "; var results = cmd.ExecuteReader(); }
var result = dataContext.ExecuteQuery ("Select JobID,JobName From jobs");
但要确保JobsDto
有两个属性JobID
和JobName
并且类型与表列类型相同
PS。 DTO代表数据传输对象