c# - 使用 Entity Framework 5 创建查询

标签 c# entity-framework entity-framework-5

尝试转换为 EF 5,但 CreateQuery 出现问题。任何帮助将非常感激。预先感谢您。

这是代码:

using System;
using System.ServiceModel;
using System.Data.Objects;
namespace TestingOneServiceRole
{
    public class Service1 : IService1
{
public void AddUser(string fullName, string userName, string password)
    {
        using (var context = new MyEntities())
        {
            context.AddToUser(new User()
            {
                UserName = userName,
                Password = password,
                FullName = fullName,
            });
            context.SaveChanges();
        }
    }
    public string UserLoginNow(string username, string password)
    {
        string query = @"SELECT value blah.FullName FROM MyEntities.blah AS User WHERE blah.UserName = @username AND blah.Password = @password";
        ObjectParameter[] parameters = new ObjectParameter[2];
        parameters[0] = new ObjectParameter("username", username);
        parameters[1] = new ObjectParameter("password", password);
        using (var context = MyEntities())
        {
            ObjectQuery<string> results = context.CreateQuery<string>(query, parameters);
            foreach (string result in results)
            {
 etc.......

最佳答案

我在此响应中假设您的 MyEntities 继承自 EF5 中的 DbContext。

使用 DbContext.Database 属性中的 SqlQuery(of T) 方法来完成同样的事情:

public string UserLoginNow(string username, string password)
{
    string query = @"SELECT value blah.FullName FROM MyEntities.blah AS User WHERE blah.UserName = @username AND blah.Password = @password";
    object[] parameters = new object[2];
    parameters[0] = username;
    parameters[1] = password;
    using (var context = MyEntities())
    {
        IEnumerable<string> results = context.Database.SqlQuery<string>(query, parameters);
        foreach (string result in results)
        {
        }
    }
}

如果您的 Entity Framework 模型源自 ObjectContext(而不是 DbContext),请参阅此 link provided by @MarkSowul了解如何访问 EF 5 中的 CreateQuery 方法。

关于c# - 使用 Entity Framework 5 创建查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16240557/

相关文章:

c#-4.0 - 性能问题 : How to execute Two lambda expression at once?。使用了 "Contains"和 "Any"运算符

c# - 如何编写 SQL 交叉联接的 Linq 表达式?

c# - "A <T>(IList<T> x) where T : I"和 "A(IList<I> x)"之间的区别?

c# - 创建 Telegram auth_key

c# - 使用 MVC 6 显示从 ASP.NET 5 中的 WebRequest 获取的 JSON 数据

c# - Web Api 2 Controller 和处理程序之间有五秒的延迟

c# - 如何返回邮政编码列表 ## 英里半径内的所有实例

c# - 两个实体之间的可选关系

asp.net-mvc - Entity Framework 更新记录不起作用

entity-framework - 使用 Entity Framework Extended 的 Entity Framework 6 批量更新和 AuditLog