0

ASP.NET Web-Api を使用して、コントローラーで次の POST セットアップを行いました。Fiddler から投稿すると、次のエラー メッセージが表示されます。

The LINQ expression node type 'ArrayIndex' is not supported in LINQ to Entities.

... var auth = dba.ApiMembers... 行に到達したとき

    // POST api/Avail
    [BasicAuthentication]
    public HttpResponseMessage PostAvail(Avail[] avail)
    {
        if (ModelState.IsValid)
        {
            // Check if authorised
            var auth = dba.ApiMembers.Where(a => a.hotel_id == 
                   avail[0].HID && a.UserName == User.Identity.Name)
                   .FirstOrDefault();

誰でもこの行に何か問題があると思いますか?

4

1 に答える 1

2

LINQ2SQL クエリはデータベースで実行され、データベース コマンドUser.Identity.Nameに変換することはできません。avail[0]これらの値をパラメーターとして初期化し、単純な型を LINQ クエリに渡す必要があります。

var hid = avail[0].HID;
var userName = User.Identity.Name;
var auth = dba.ApiMembers.Where(a => a.hotel_id == hid && a.UserName == userName).FirstOrDefault();
于 2012-06-22T14:44:40.493 に答える