2012-06-22 67 views
0

使用ASP.NET Web的API,我有我的控制器以下崗位設置。當從提琴手張貼到它,我得到錯誤信息:Asp.net MVC LINQ錯誤信息

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(); 

任何人都可以看到什麼毛病用這條線?

+0

http://social.msdn.microsoft.com/forums/en-US/adodotnetentityframework/thread/39adb1ac-451b-48cc-aac5-4c9fe82b7cce – GriffeyDog

回答

2

LINQ2SQL查詢數據庫中運行,這是不可能的User.Identity.Nameavail[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();