2.4 LINQ基础操作 上
- 评论:0
- 浏览:469
- RSS:2
2.4.1、创建、删除数据库
LINQ不仅能从现有数据库中生成数据库对象模型(即DBML文件),而且能从现有的单个数据库对象模型中反向生成数据库(注:仅仅是单个数据库对象模型,即单个DBML文件),并能删除数据库。但遗憾的是LINQ并不能只生成数据库中的单个表。
LINQ提供了DatabaseExists(数据库是否存在),CreateDatabase(建立数据库),DeleteDatabase(删除数据库)三个函数来实现相应的操作。
例:
protected void Page_Load(object sender, EventArgs e)
{
UsersDataContext dal = new UsersDataContext();//添加对数据库对象模型的引用
if (dal.DatabaseExists())//如果数据库存在
dal.DeleteDatabase();//删除数据库
if (!dal.DatabaseExists())//如果数据库不存在
dal.CreateDatabase();//创建数据库
}
此时,LINQ会根据Users的数据库对象模型生成数据库,仅仅包括Users数据库对象模型中包含的表格(仅包括Users数据库对象模型中的表),若我们包含多个数据库对象模型,则可合并为一个,并采用此函数来生成。
2.4.2、添加数据
经过前边的学习,我们知道LINQ提供了InsertOnSubmit、InsertAllOnSubmit两个函数来实现对数据的添加,并在SubmitChanges的时候完成对数据的删除。我们再来温习一便:
a. InsertOnSubmit: 将一个实体添加到datacontext对象中,并在SubmitChange()的时候执行更改。
b. InsertAllOnSubmit:将一个实体集合添加到datacontext对象中,并在SubmitChange()的时候执行更改。
例:
UsersDataContext dal = new UsersDataContext();
User[] user = new User[3]
{
new User { UserName = "Lily", UserPass = "Lily" },
new User { UserName = "Lucy", UserPass = "Lucy" },
new User { UserName = "Tom", UserPass = "Tom" },
};
User user1 = new User { UserName = "Bill", UserPass = "Bill" };
dal.Users.InsertAllOnSubmit(user);//添加实体集合
dal.Users.InsertOnSubmit(user1);//添加单个实体
dal.SubmitChanges();
以上结果为向数据库Users表中增加数据。
2.4.3、删除数据
同样,LINQ提供了DeleteOnSubmit、DeleteAllOnSubmit两个函数实现对数据的删除,并在SubmitChanges的时候完成对数据的删除。
a. DeleteOnSubmit: 将一个实体从datacontext对象中删除,并在SubmitChange()的时候执行更改。
b. DeleteAllOnSubmit:将一个实体集合从datacontext对象中删除,并在SubmitChange()的时候执行更改。
例:
protected void btnDelete_Click(object sender, EventArgs e)
{
UsersDataContext dal = new UsersDataContext();
User user = dal.Users.FirstOrDefault(s => s.UserName == "Tom");
if (user != null)
{
dal.Users.DeleteOnSubmit(user);//删除单条数据
}
var q = dal.Users;
dal.Users.DeleteAllOnSubmit(q);//删除数据集
dal.SubmitChanges();
}
※注:以上两个函数必须要跟随SubmitChange()函数才能从数据库中删除数据。我们可以通俗的理解为:以上两个函数仅仅相当于一条Sql语句,而SubmitChange()相当于执行此条Sql语句。