|
我們就以前面的文章:[VS2010] ADO.NET Entity Framework: 建立多對多關聯模型所建立的資料模型,來玩玩看這些功能吧。
1. 測試傳回內建型別的資料,請在 Main 方法中加入下列程式碼並執行:
static void Main(string[] args)
{
using (SchoolDBContainer context = new SchoolDBContainer())
{
foreach (string courseName in context.ExecuteStoreQuery<string>("SELECT name FROM CoursesSet"))
{
Console.WriteLine("Course name: {0}", courseName);
}
}
Console.ReadLine();
}
你應該會看到類似這樣的輸出:
ExecuteStoreQuery<T>() 透過傳入的 SQL 指令以及參數,將資料庫回傳的資料集以指定的型別來回傳,以上面的例子來說,就是把 CoursesSet 中的 name 屬性轉換成 string 型別的集合回傳,因為回傳的是一個 IEnumerate<T> 的集合,故可以直接使用 foreach 來巡覽並存取每個集合中的物件。它的第一個參數是 SQL 指令,第二個參數是 params 的參數陣列。ExecuteStoreQuery<T>() 可以支援的參數類型有三種:
1. 使用 pattern 方式的參數指定,例如 ExecuteStoreQuery<string>(“SELECT name FROM CoursesSet WHERE CourseID = {0}”, 1234),當然,這會有 SQL Injection 的問題,因此最好不要使用。
2. 使用參數化查詢方式的參數指定,例如 ExecuteStoreQuery<string>(“SELECT name FROM CoursesSet WHERE CourseID = @p0”, 1234),這是建議的作法。
3. 若想要對參數有更進一步的控制,可以直接傳入 DbParameter 物件,例如 ExecuteStoreQuery<string>(“SELECT name FROM CoursesSet WHERE CourseID = @p0”, new SqlParameter(“@p0”, 1234))。 |
|