簡體   English   中英

將Sql語句轉換為Linq以與C#,實體框架,MVC3一起使用

[英]Convert Sql Statement into Linq for use with C#, Entity Framework, MVC3

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

您正在使用LINQ,但沒有看到任何SQL語句。 可能您想修改LINQ語句以使其正常工作。 在查詢中,您需要指定數據上下文和表。

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

該查詢將為您提供記錄(如果找到),否則返回null

看看LINQpad

我發現它非常有用,非常適合檢查linq是否正在執行SQL的常規操作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM