将Sql语句转换为Linq以便与C#、实体框架、MVC3一起使用

将Sql语句转换为Linq以便与C#、实体框架、MVC3一起使用,c#,asp.net-mvc-3,linq,entity-framework-4.1,C#,Asp.net Mvc 3,Linq,Entity Framework 4.1,我需要将sql语句转换为linq查询 以下代码标记了我的问题区域- public class MyObjectController : Controller { private EFDbContext db = new EFDbContext(); private IObjectRepository objRepo; public MyObjectController(IObjectRepository objectRepository) { o

我需要将sql语句转换为linq查询

以下代码标记了我的问题区域-

public class MyObjectController : Controller
{
    private EFDbContext db = new EFDbContext();
    private IObjectRepository objRepo;

    public MyObjectController(IObjectRepository objectRepository)
    {
        objRepo = objectRepository;
    }

    //
    // GET: /Client/MyObject/

    public ActionResult Index()
    {
        if (User.Identity.IsAuthenticated)
        {
            MembershipUser currentUser = Membership.GetUser(User.Identity.Name, true);

            if (currentUser != null && currentUser.ProviderUserKey != null && currentUser.IsApproved)
            {
                var currentUserId = (Guid)currentUser.ProviderUserKey;

<========HOW TO EXECUTE IN LINQ==================>
             Object result = (from obj in objRepo
                             where obj.ObjId == currentUserId
                             select obj).FirstOrDefault();
<========HOW TO EXECUTE IN LINQ==================>

             return View(result);
            }                
        }
        return View();

    }

您使用的是LINQ,我没有看到任何SQL语句。可能需要修改LINQ语句以使其正常工作。在查询中,需要指定数据上下文和表

var result = (from obj in yourDataContext.yourEntity
             where obj.ObjId == currentUserId
             select obj).FirstOrDefault();

如果找到,该查询将为您提供记录,否则为null。您使用的是LINQ,我看不到任何SQL语句。可能需要修改LINQ语句以使其正常工作。在查询中,需要指定数据上下文和表

var result = (from obj in yourDataContext.yourEntity
             where obj.ObjId == currentUserId
             select obj).FirstOrDefault();
如果找到,该查询将为您提供记录,否则为空

我发现它非常有用,非常适合于检查linq是否正在使用SQL执行您习惯的操作。

请看一看


我发现它非常有用,并且非常适合于检查linq是否正在执行SQL所习惯的操作。

您首先使用的是edmx或代码?where子句应该是
where(m=>m.ObjectId==somId)
因为它需要一个返回布尔值的表达式您首先使用的是edmx或code?where子句应该是
where(m=>m.ObjectId==somId)
因为它需要一个返回布尔值的表达式这是一个非常棒的链接!谢谢…我只是很遗憾,我不得不给出上述实际答案的答案(如此矛盾)。但谢谢你让我提到这件事。(:您是否熟悉此错误传递到字典中的模型项的类型为“System.Data.Entity.DynamicProxies.Object”\u 3E186F803589BF82895B10E08C2A9AB68EFA619599418D6EB96585D14874CDC0”,但此字典需要类型为“System.Collections.Generic.IEnumerable`1[MySite.Domain.Entities.Object]的模型项’。这是一个非常棒的链接!谢谢……我只是很遗憾我不得不给出上面实际答案的答案(如此矛盾)。但是谢谢你推荐我参考这个。(:您是否熟悉此错误传递到字典中的模型项的类型为“System.Data.Entity.DynamicProxies.Object”\u 3E186F803589BF82895B10E08C2A9AB68EFA619599418D6EB96585D14874CDC0”,但此字典需要类型为“System.Collections.Generic.IEnumerable`1[MySite.Domain.Entities.Object]的模型项“。您是否熟悉此错误-您是否熟悉此错误传递到字典中的模型项的类型为”System.Data.Entity.DynamicProxies.Object_3E186F803589BF82895B10E08C2A9AB68EFA619599418D6EB96585D14874CDC0“,但此字典需要类型为”System.Collections.Generic.IEnumerable“1”的模型项[MySite.Domain.Entities.Object]“.@HelloJonnyOh,您可以检查此线程或发布带有完整场景的新问题。我在此处发布了整个场景-您是否熟悉此错误-您是否熟悉此错误传递到字典中的模型项类型为“System.Data.Entity.DynamicProxies.Object”\u 3E186F803589BF82895B10E08C2A9AB68EFA619599418D6EB96585D14874CDC0',但此字典需要类型为“System.Collections.Generic.IEnumerable`1[MySite.Domain.Entities.Object]”的模型项。@HelloJonnyOh,您可以检查此线程或发布一个新问题,并提供完整的场景。我在此处发布了整个场景-