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 に答える