5. 执行SQL语句
LINQ查询句法提供了非常强大的功能,基本能满足我们90%以上的要求,但是如果在实际开发中,遇到了非常复杂的查询需求或者使用LINQ查询句法无法完成的操作,LINQ to SQL也支持我们直接使用T-SQL来完成。在DataContext中,提供了如下这样三个方法,用来执行SQL语句:
Code9:
public int ExecuteCommand(string command, params object[] parameters);看下面这段代码:
public IEnumerable<TResult> ExecuteQuery<TResult>(string query, params object[] parameters);
public IEnumerable ExecuteQuery(Type elementType, string query, params object[] parameters);
Code10:
static void Main(string[] args)在这里,并没有使用查询句法,而是使用T-SQL语句进行查询,并调用ExecuteQuery方法执行SQL语句,它执行的结果跟上面Code7中的代码执行的结果是一样的,这在一定程序上给我们使用LINQ to SQL带来极大的灵活性。
{
BlogDataContext db = new BlogDataContext();
using (StreamWriter sw = new StreamWriter(@"c:\log.txt", true))
{
db.Log = sw;
String sql = "SELECT * FROM Posts ORDER BY PubDate";
IEnumerable<Post> posts = db.ExecuteQuery<Post>(sql);
foreach (var post in posts)
{
Console.WriteLine(post.Title);
}
Console.ReadLine();
}
}