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)