1
我是新來的實體框架,不明白爲什麼CommandBehavior.SequentialAccess是必需的ExecuteReader。下面是我的代碼..爲什麼CommandBehavior.SequentialAccess在Entity Framework的ExecuteReader中是必需的?
using (var conn = new EntityConnection("name=EFRecipesEntities"))
{
Console.WriteLine("Customers...");
var cmd = conn.CreateCommand();
conn.Open();
cmd.CommandText = @"select c.Name, C.Email from
EFRecipesEntities.Customers as c";
using (var reader = cmd.ExecuteReader(CommandBehavior.SequentialAccess))
{
while (reader.Read())
{
Console.WriteLine("{0}'s email is: {1}",
reader.GetString(0), reader.GetString(1));
}
}
}
任何幫助..
如果您不使用SequentialAccess會發生什麼?有一個ExceuteReader重載不會執行命令行爲。如果你使用EF,你爲什麼要下降到ADO.NET而不是使用linq查詢? – Pawel 2013-04-10 20:10:14
「無法在當前作用域或上下文中解析,請確保所有引用的變量都在作用域中,所需的模式已加載,並且名稱空間被正確引用。發生此異常。我只是在實踐EF,「從實體SQL語句返回對象」 – 2013-04-11 03:05:26
我的建議是隻使用實體Sql。只需使用Linq to Entities,就可以使用Entity Sql實現幾乎所有的功能。在實踐中,你可能永遠不必使用Entity Sql。你得到的例外是來自EntitySql語法分析器。我不完全知道什麼是錯的(可能是'C.Email'中的大寫字母C,而實體是別名'c'?)。我不知道爲什麼改變CommandBehavior會解決這個問題。 – Pawel 2013-04-11 05:05:10