A. 如何在EF中直接运行sql命令
http://..com/link?url=-B5UeGGl9eOYqbI-n-2QoN_q9j1bzVJeHesY8hUzdHGOQgC-xYS9hScodFNUAzykAZOqbYETj7MS
参考资料在这里你可以看看
B. 如何在EF中直接运行SQL命令
db.Database.SqlQuery<T>(sql).AsQueryable();//这个返回是queryable
返回DataTable要自己写个扩展方法
public static DataTable SqlQueryForDataTatable(this Database db,
string sql,
SqlParameter[] parameters)
{
SqlConnection conn = new System.Data.SqlClient.SqlConnection();
conn.ConnectionString = db.Connection.ConnectionString;
if (conn.State != ConnectionState.Open)
{
conn.Open();
}
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandText = sql;
if (parameters.Length > 0)
{
foreach (var item in parameters)
{
cmd.Parameters.Add(item);
}
}
SqlDataAdapter adapter = new SqlDataAdapter(cmd);
DataTable table = new DataTable();
adapter.Fill(table);
return table;
}
C. c#用 ef怎么执行sql语句
EF model first方式, 你的DB是继承ObjectContext
using(MyObjectContextdb=newMyObjectContext())
{
stringsql=“selectcolumnA,columnBfromTableAwhere1=1”;
db.ExecuteStoreQuery<TableAObject>(sql).ToList();//TableAObject就是你定义的对象,对象属性就是columnA,columnB
}
code first, 你的db是继承DbContext
using(MyDbContextdb=newMyDbContext())
{
stringsql=“selectcolumnA,columnBfromTableAwhere1=1”;
db.TableAObject.SqlQuery(sql).ToList();//TableAObject就是在MyDbContext定义的对象
}
这里只是列举查询的方式,仅供参考,一般新增 删除 或者修改 用对象的方式比较多,如果是sql,一般是
db.Database.ExecuteSqlCommand(sqlString)
D. ef的savechanges最多执行多少条数据
执行存储过程后是直接执行了SQL语句 但是如果不适用 SaveChanges()保存的话 EF在内存维护的数据会没有改变 如果不注意一下的话 可能会引起读取的是旧数据 也就是读取的是内存中的数据。 EF 有些方法是会先读取内存中维护的数据如果没有才会从数据库中执行SQL语句读取数据库中的数据的。 使用 SaveChanges() 方法是非常重要的 当然最安全的就是执行方法结束后 立即SaveChanges() 但要是操作的方法涉及到多个执行语句 那么就建议全部执行完成后保存
E. c#用 ef怎么执行sql语句
EF
model
first方式,
你的DB是继承ObjectContext
using (MyObjectContext db = new MyObjectContext() )
{
string sql = “ select columnA, columnB from TableA where 1 = 1 ”;
db.ExecuteStoreQuery
(sql).ToList();//TableAObject就是你定义的对象,对象属性就是columnA, columnB
} code
first,
你的db是继承DbContext
using (MyDbContext db = new MyDbContext() )
{
string sql = “ select columnA, columnB from TableA where 1 = 1 ”;
db.TableAObject.SqlQuery(sql).ToList();//TableAObject就是在MyDbContext 定义的对象
}
这里只是列举查询的方式,仅供参考,一般新增
删除
或者修改
用对象的方式比较多,如果是sql,一般是
db.Database.ExecuteSqlCommand(sqlString)
F. 如何在EF中直接运行SQL命令
db.Database.SqlQuery<T>(sql).AsQueryable();//这个返回是queryable
返回DataTable要自己写个扩展方法
public static DataTable SqlQueryForDataTatable(this Database db,
string sql,
SqlParameter[] parameters)
{
SqlConnection conn = new System.Data.SqlClient.SqlConnection();
conn.ConnectionString = db.Connection.ConnectionString;
if (conn.State != ConnectionState.Open)
{
conn.Open();
}
SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandText = sql;
if (parameters.Length > 0)
{
foreach (var item in parameters)
{
cmd.Parameters.Add(item);
}
}
SqlDataAdapter adapter = new SqlDataAdapter(cmd);
DataTable table = new DataTable();
adapter.Fill(table);
return table;
}
G. 如何在EF中直接运行SQL命令
用ExecuteStoreCommand方法
H. 如何在EF中直接运行SQL命令
现在有了EF4.1,API的名字又有了些许改变。如果说DbContext将ObjectContext做了包装,那么DbContext.Database就是对应于数据库端信息的封装。执行SQL命令也自然从Database类型开始。对应于ExecuteStoreCommand和ExecuteStoreQuery<T>的是Database.ExecuteSqlCommand和Database.SqlQuery<T>。
using (var ctx = new MyDbContext())
{
ctx.Database.ExecuteSqlCommand("UPDATE Person SET Name = 'Michael' WHERE PersonID = 1");
}
using (var ctx = new MyDbContext())
{
var peopleViews = ctx.SqlQuery<PersonView>("SELECT PersonID, Name FROM Person").ToList();
}
public class PersonView
{
public int PersonID { get; set; }
public string Name { get; set; }
}
I. 如何在EF中直接运行SQL命令
EF model first方式, 你的DB是继承ObjectContext
using (MyObjectContext db = new MyObjectContext() )
{
string sql = “ select columnA, columnB from TableA where 1 = 1 ”;
db.ExecuteStoreQuery<TableAObject>(sql).ToList();//TableAObject就是你定义的对象,对象属性就是columnA, columnB
}
code first, 你的db是继承DbContext
using (MyDbContext db = new MyDbContext() )
{
string sql = “ select columnA, columnB from TableA where 1 = 1 ”;
db.TableAObject.SqlQuery(sql).ToList();//TableAObject就是在MyDbContext 定义的对象
}
这里只是列举查询的方式,仅供参考,一般新增 删除 或者修改 用对象的方式比较多,如果是sql,一般是
db.Database.ExecuteSqlCommand(sqlString)