技术开发 频道

LINQ to SQL:数据上下文


    我们经常使用的有两种:一是使用连接字符串,作为DataContext构造函数的参数:
    Code2
public DataContext CreateDataContext() 
{
DataContext db = new DataContext(@"Server=Esint-lhj\Sql2005;User Id=sa;Password=sql2005;Database=MSPetShop4");

return db;
}
    这里为了避免硬编码连接字符串,你也可以把连接字符串放在配置文件中。创建DataContext对象的第二种方式就是使用 IDbConnection对象作为DataContext构造函数的参数:
Code3:
public DataContext CreateDataContext() 
{
IDbConnection conn = new SqlConnection(@"Server=Esint-lhj\Sql2005;User Id=sa;Password=sql2005;Database=MSPetShop4");

DataContext db = new DataContext(conn);

return db;
}
3. 创建强类型的DataContext

    虽然可以使用上面的两种方法来创建一个DataContext,但是在实际使用中,用的最多的还是创建强类型的DataContext,使用强类型的DataContext的好处是可以获取IDE的智能提示、使后面的使用代码更加优雅。如下示例代码创建一个强类型的DataContext:
    Code4:
[Database(Name="Blog")] 
public class BlogDataContext : DataContext
{
public BlogDataContext()
: base(@"Server=Esint-lhj\Sql2005;User Id=sa;Password=sql2005;Database=Blog")
{

}

public Table<Post> Posts
{
get
{
return this.GetTable<Post>();
}
}
}
   在Code4中创建了一个强类型BlogDataContext的同时,也在其中定义了一个Posts的属性,用来获取Blog数据库中所有Post的集合。这样,可以如下进行BlogDataContext的使用:
Code5:
public class Program 
{
static void Main(string[] args)
{
BlogDataContext db = new BlogDataContext();

IEnumerable<Post> posts = from p in db.Posts
orderby p.PubDate
select p;
}
}
    并且获得很好的智能提示的支持,如下图所示:

0
相关文章