0

我需要将 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();

    }

只是为了澄清一下-我想要更像这样的东西,但我不知道如何正确使用语法:

Object myObj = moveRepo.Objects
                    .Where(m => m.ObjectId)
                    .Equals(m => currentUserId)
                return View(myObj);
4

2 回答 2

2

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

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

如果找到该查询将为您提供记录,否则为 null

于 2012-06-28T05:18:33.993 回答
1

看看LINQpad

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

于 2012-06-28T05:23:35.613 回答