我看到你可以指定插入,更新和刪除存儲的特效,但對於SELECT存儲特效沒有直接的方法。如何讓ASP .Net動態數據使用存儲過程進行select?
2
A
回答
0
這是可行的,但不是通過可視化拖放工具。你必須做三兩件事:
創建一個從DataContext類將被稱爲「獲取」數據的新方法
public partial class DatabaseDataContext { [Function(Name = "dbo.Contact_Get")] [ResultType(typeof(Contact))] [ResultType(typeof(int))] public IMultipleResults GetContacts([Parameter(Name = "PageIndex", DbType = "Int")] System.Nullable<int> pageIndex, [Parameter(Name = "PageSize", DbType = "Int")] System.Nullable<int> pageSize, [Parameter(Name = "Sort", DbType = "NVarChar(10)")] string sort, [Parameter(Name = "ContactTypeId", DbType = "Int")] System.Nullable<int> contactTypeId) { IExecuteResult result = this.ExecuteMethodCall(this, ((MethodInfo)(MethodInfo.GetCurrentMethod())), pageIndex, pageSize, sort, contactTypeId); return ((IMultipleResults)(result.ReturnValue)); }
}
創建一個新的頁面模板(例如List.aspx),以便在CustomPages文件夾中控制選擇的特定表。
控制gridview的選擇機制。
protected void GridDataSource_Selecting(object sender, LinqDataSourceSelectEventArgs e) { DatabaseDataContext db = new DatabaseDataContext(); IMultipleResults results = db.GetContacts(e.Arguments.StartRowIndex, e.Arguments.MaximumRows, e.Arguments.SortExpression, (int?)e.WhereParameters["ContactTypeId"]); e.Result = results.GetResult<Contact>().ToList(); e.Arguments.TotalRowCount = results.GetResult<int>().Single<int>();
}
退房在CodePlex上的網站上的動態數據SP樣品DD將告訴您如何做到這一點:
http://aspnet.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=14473
-2
LINQ到SQL是一個非常糟糕的主意......
但這種存儲過程應該讓你做你想做的
create PROCEDURE [dbo].[usp_GetCompanies] (
@in_filter nvarchar(2000)
)
AS
declare @sql nvarchar(max)
begin
set @sql = '
SELECT
c.id as company_id, c.name as company_name
FROM company c
WHERE id is not null ' + @in_filter + ' order by c.type, c.name '
exec sp_executesql @sql
end
return
1
你在找什麼我相信不是可能是,因爲實體必須映射到某種表或某種視圖。存儲過程不是您可以定義實體的東西。
但是,當存儲過程告訴Linq2Sql執行時返回實體,並在DataContext類中放入一個方法來運行存儲過程並獲取實體列表時,肯定有可能創建映射。這些實體與從常規表映射創建的實體執行相同的操作,因此對它們調用SubmitChanges()將使用您爲該實體類型創建的任何插入/更新/刪除sprocs。
可能最好的辦法是看this walkthrough by Scott Guthrie。
相關問題
- 1. 存儲過程和ASP .NET
- 2. 存儲過程不執行ASP .NEt
- 3. 如何從存儲過程動態使用多個數據庫
- 4. ASP .NET MVC 3模型+存儲過程
- 5. 如何動態調用存儲過程?
- 6. 使用Velocity進行Asp .Net MVC緩存
- 7. 使用存儲過程從數據庫中進行選擇?
- 8. 使用存儲過程在.net中插入Blob數據.net
- 9. 如何用參數創建動態數據窗口使用存儲過程
- 10. 使用動態查詢存儲過程
- 11. 使用動態SQL存儲過程返回錯誤數據
- 12. 動態數據庫名稱,而不使用存儲過程
- 13. VB .net - 存儲過程 - 行號計數
- 14. 在動態數據網站中使用存儲過程
- 15. MVC6 - 使用存儲過程進行數據查詢
- 16. 如何在存儲過程中動態選擇數據庫?
- 17. Oracle存儲過程 - 根據可選參數動態生成select語句
- 18. 從存儲過程創建的select語句中存儲數據
- 19. 運行存儲過程多次動態
- 20. 如何使用Select語句在存儲過程上使用LINQ?
- 21. 在存儲過程中使用Select Scope_Identity()
- 22. T-SQL動態執行存儲過程
- 23. SQL:在SELECT(存儲過程)
- 24. 如何在SQL Server中的clr存儲過程中執行動態.net代碼
- 25. 從另一個存儲過程動態調用存儲過程
- 26. 存儲過程動態/通用其中
- 27. 如何使用asp classic調用存儲過程?
- 28. ASP執行帶NULL的存儲過程
- 29. 執行存儲過程的ASP代碼
- 30. 存儲過程中的動態參數?
你使用LINQ to SQL或實體框架? – 2009-06-29 19:14:02
我正在使用LINK到SQL – Irwin 2009-06-29 19:24:44
它是否必須是SP,還是可以是View? – 2009-06-29 19:35:44