读书人

Entity Framework 4.0如何直接执行sql

发布时间: 2012-02-29 16:44:10 作者: rapoo

Entity Framework 4.0怎么直接执行sql查询语句
sql命令是针对oracle数据库的,,可以直接调用entities中的方法执行sql么,

倒是看到一个ExecuteStoreQuery方法,但是不会用,不知道是不是这个方法

没分了,见谅

[解决办法]
ExecuteStoreQuery这个方法应该是执行存储过程的!
[解决办法]
用Entity SQL吧。虽然没用EF访问过Oracle,但原理上Entity SQL应该是数据库无关的。Entity SQL只是语法上像极了SQL,但实际上还是需要对应的LINQ Provider把它转换为具体数据库的native SQL语句。
[解决办法]
如果用hibernate,就使用HQL解决最方便。
[解决办法]

C# code
using (SchoolEntities context =    new SchoolEntities()){    // The following three queries demonstrate     // three different ways of passing a parameter.    // The queries return a string result type.    // Use the parameter substitution pattern.    foreach (string name in context.ExecuteStoreQuery<string>        ("Select Name from Department where DepartmentID < {0}", 5))    {        Console.WriteLine(name);    }    // Use parameter syntax with object values.    foreach (string name in context.ExecuteStoreQuery<string>        ("Select Name from Department where DepartmentID < @p0", 5))    {        Console.WriteLine(name);    }    // Use an explicit SqlParameter.    foreach (string name in context.ExecuteStoreQuery<string>        ("Select Name from Department where DepartmentID < @p0",            new SqlParameter { ParameterName = "p0", Value = 5 }))    {        Console.WriteLine(name);    }}
[解决办法]
要不你就把SQL查询封装在存储过程里,再通过EF访问这个存储过程。

读书人网 >.NET

热点推荐