EF的常用知识积累

对于EF的操作,其经验积累如下。

EF中使用SQL语句或存储过程

1、无参数查询
var model = db.Database.SqlQuery("select* from UserInfoes ").ToList();

2、有参查询
var model = db.Database.SqlQuery("select* from UserInfoes where id=@ID ",new SqlParameter("@ID",id)).ToList();

3、结合linq查询

var model = (from p in db.userinfo.SqlQuery("select * from UserInfoes where id=@ID", new SqlParameter("@ID", 1)) select p).ToList();

4:EF原始查询单独表

model = db.userinfo.OrderByDescending(a => a.ID).Skip(10 * (当前页 - 1)).Take(10).ToList();

5,EF 执行存储过程或delete 删除语句

SqlParameter[] para = new SqlParameter[] {
new SqlParameter("@ID",id)
};
db.Database.ExecuteSqlCommand("delete UserInfoes  where id=@ID", para);

存储过程 删除,有几个参数,存储后面要带几个参数以逗号分隔

SqlParameter[] para = new SqlParameter[] {
new SqlParameter("@ID",id)
};

////返回受影响的行数

db.Database.ExecuteSqlCommand("sp_Userinfos_deleteByID @ID", para);

////返回数据的集合
List dd02 = dbsql.Database.SqlQuery("exec getActionUrlId @name", parameters).ToList();//返回查询到的实体集合


6.CODE FIRST 迁移数据库时,可以根据NUGET中迁移报告直接对数据库进行更新升级即可。

CODE FIRST升级数据库时,只对最后一次升级有效,即若系统共更新了5次,则可以省略前四次,直接第五次即可,但若不依次进行,则前几次的更新未体现在数据库中,往往会导致程序不能正常运行。
CODE FIRST原则上以最新更新的数据库版本为准,但如果在更改数据库前未获取最新代码,则原来的更新未及时反映到数据库中,则会显示版本不对的。因此,更新数据库前,需要先获取最新代码,然后更新数据库,更新后立即上传代码。从而保证代码的一致性






你可能感兴趣的:(ENTITY,FRAMEWORK,类)