Có cách nào để chạy câu lệnh sql trực tiếp từ các cuộc gọi được tạo ra bởi khung thực thể không? Hoặc tôi sẽ phải tạo một thủ tục sau đó gọi đó thông qua khung thực thể?Chạy sql trong khung thực thể?
Trả lời
Được Googling xung quanh cho điều này bản thân mình ngày khác, đây là ví dụ tôi tìm thấy hy vọng nó giúp
static void ExecuteSql(ObjectContext c, string sql)
{
var entityConnection = (System.Data.EntityClient.EntityConnection)c.Connection;
DbConnection conn = entityConnection.StoreConnection;
ConnectionState initialState = conn.State;
try
{
if (initialState != ConnectionState.Open)
conn.Open();
using (DbCommand cmd = conn.CreateCommand())
{
cmd.CommandText = sql;
cmd.ExecuteNonQuery();
}
}
finally
{
if (initialState != ConnectionState.Open)
conn.Close();
}
}
Trong EF 4.0 này là khá dễ dàng vì có phương pháp mới trên ObjectContext
cho phép bạn thực hiện các lệnh lưu trữ (ví dụ SQL) trực tiếp:
Xem này: ExecuteStoreCommand
Nếu bạn vẫn đang sử dụng EF 3.5 SP1 bạn vẫn có thể thực hiện một truy vấn trực tiếp chống lại các cơ sở dữ liệu nếu bạn thực sự muốn như thế này:
var econn = ctx.Connection as EntityConnection;
var dbconn = econn.StoreConnection;
vào thời điểm này, bạn có thể truy cập vào một kết nối (dbconn) cơ sở dữ liệu cơ bản, vì vậy bạn có thể sử dụng mã ADO.NET bình thường để thực hiện truy vấn, vv
Hope this helps
Alex
@ Alex James, vì tò mò, sẽ này được hiệu quả để chạy một chút văn bản sql đầy đủ các mã, như trong không nên có chi phí hoạt động đúng không? Để nói, hãy chạy cùng một mã sql văn bản đầy đủ thẳng như một truy vấn trong studio quản lý sql.
ExecuteStoreQuery<>
và ExecuteStoreCommand
được những gì bạn muốn:
using (NorthWindEntities ctx = new NorthWindEntities())
{
ctx.ExecuteStoreQuery<>()
ctx.ExecuteStoreCommand();
}
- 1. Làm cách nào để thực thi truy vấn sql thô trong khung thực thể?
- 2. Gỡ lỗi khung thực thể Các câu lệnh SQL
- 3. Cách xem SQL được tạo từ khung thực thể?
- 4. Khung thực thể mất chính xác Sql DateTime
- 5. Chuỗi kết nối thời gian chạy của khung thực thể
- 6. Cách lấy sql được tạo bởi khung thực thể
- 7. Khung thực thể và phân trang SQL Server 2012
- 8. GROUP và SUM trong khung thực thể
- 9. Xóa tầng trong Khung thực thể
- 10. Xác thực khung thực thể
- 11. Tạo khung thực thể thiếu một thực thể
- 12. FunctionImport trong khung thực thể 4 issue
- 13. C#, khung thực thể, tăng tự động
- 14. POCO trong khung thực thể là gì?
- 15. sử dụng hashset trong khung thực thể
- 16. Hiểu giao dịch trong khung thực thể
- 17. loại phức hợp trong khung thực thể
- 18. Tạo DbSet <T> động trong Khung thực thể?
- 19. Nhận chuỗi kết nối khung thực thể
- 20. HiLO cho Khung thực thể
- 21. Cú pháp "không có trong SQL" cho Khung thực thể 4.1
- 22. Loại 'thời gian' của SQL trong Mã khung thực thể Đầu tiên
- 23. Xử lý ngoại lệ trong khung thực thể 4
- 24. Khung thực thể cho nhiều cơ sở dữ liệu (cùng một lược đồ) khi chạy?
- 25. Kết quả truy vấn khung thực thể Nhân bản
- 26. Bản đồ không thể SYS_REFCURSOR trong khung thực thể
- 27. Khung thực thể và Trình tư vấn điều chỉnh máy chủ SQL
- 28. Hiệu suất của khung thực thể 4 so với khung thực thể 3.5 như thế nào?
- 29. Bảng phân tách khung thực thể Xóa
- 30. Nhiều lần tham gia trong truy vấn Khung thực thể
tôi sẽ tư vấn việc sử dụng ExecuteStoreCommand() trong ObjectContext thay vì ExecuteSql trên() –