Entity SQL查询
Entity Framework支持三种类型的查询:1) LINQ-to-Entities, 2) Entity SQL, and 3) Native SQL
Entity SQL是创建查询的另一种方式。它由Entity Framework的对象服务直接处理。它返回ObjectQuery而不是IQueryable。
您需要一个ObjectContext来使用Entity SQL创建查询。
//Querying with Object Services and Entity SQL
string sqlString = "SELECT VALUE st FROM SchoolDBEntities.Students " +
"AS st WHERE st.StudentName == 'Bill'";
var objctx = (ctx as IObjectContextAdapter).ObjectContext;
ObjectQuery<Student> student = objctx.CreateQuery<Student>(sqlString);
Student newStudent = student.First<Student>();
你也可以使用EntityConnectionn和EntityCommand来执行Entity SQL,如下所示:
using (var con = new EntityConnection("name=SchoolDBEntities"))
{
con.Open();
EntityCommand cmd = con.CreateCommand();
cmd.CommandText = "SELECT VALUE st FROM SchoolDBEntities.Students as st where st.StudentName='Bill'";
Dictionary<int, string> dict = new Dictionary<int, string>();
using(EntityDataReader rdr =cmd.ExecuteReader(CommandBehavior.SequentialAccess | CommandBehavior.CloseConnection))
{
while (rdr.Read())
{
int a = rdr.GetInt32(0);
var b = rdr.GetString(1);
dict.Add(a, b);
}
}
}
更多Entity SQL的使用方法请参考其他资料。
参考
https://www.entityframeworktutorial.net/
https://msdn.microsoft.com/