2014-02-23 51 views
0

我正在使用ASP.Membership提供程序,並且爲用戶數據創建了一個附加表。我只是在試驗,我並不擔心安全或類似的事情。我只關心大局。Breeze,數據庫優先和匿名對象

我正在試驗Breeze,SPA,Entity Framework和Web.API,也許我在獲得對各個概念的掌握之前衝得太快。

我的微風查詢看起來是這樣的:

[HttpGet] 
public IQueryable<object> Users() 
{ 
    return (
     from user in _contextProvider.Context.Users 
     join membership in _contextProvider.Context.Memberships on user.UserId equals membership.UserId 
     join userProfile in _contextProvider.Context.UserProfiles on user.UserId equals userProfile.UserId 
     select new { user, membership, userProfile} 
    ); 
} 

我的結果看起來是這樣的(僅第一次顯示的記錄):

{ 
$id: "1", 
$type: "<>f__AnonymousType4`3[[SPA01.EntityFramework.User, SPA01],[SPA01.EntityFramework.Membership, SPA01],[SPA01.EntityFramework.UserProfile, SPA01]], SPA01", 
user: { 
    $id: "2", 
    $type: "SPA01.EntityFramework.User, SPA01", 
    UserId: "dd59fcd1-9d88-4494-a37c-1c25155cb77d", 
    ApplicationId: "23042eba-1113-4e56-8ac6-4640120ecc6c", 
    UserName: "DHaworth", 
    IsAnonymous: false, 
    LastActivityDate: "2014-02-17T00:01:39.707", 
    Membership: { 
     $id: "3", 
     $type: "SPA01.EntityFramework.Membership, SPA01", 
     UserId: "dd59fcd1-9d88-4494-a37c-1c25155cb77d", 
     ApplicationId: "23042eba-1113-4e56-8ac6-4640120ecc6c", 
     Password: "sdfasdfsadfsadfsafasfae0dfzT64vo=", 
     PasswordFormat: 1, 
     PasswordSalt: "/CRUMPNf9+byEdPraeasfsaQJw==", 
     Email: "[email protected]", 
     PasswordQuestion: "TR", 
     PasswordAnswer: "B4HOezQ/TYasdfasfasfgjz4oAOERhnc=", 
     IsApproved: true, 
     IsLockedOut: false, 
     CreateDate: "2014-01-04T05:18:18.063", 
     LastLoginDate: "2014-02-17T00:01:39.707", 
     LastPasswordChangedDate: "2014-01-12T21:58:30.497", 
     LastLockoutDate: "1754-01-01T00:00:00.000", 
     FailedPasswordAttemptCount: 0, 
     FailedPasswordAttemptWindowStart: "1754-01-01T00:00:00.000", 
     FailedPasswordAnswerAttemptCount: 0, 
     FailedPasswordAnswerAttemptWindowsStart: "1754-01-01T00:00:00.000", 
     Comment: null, 
     User: { 
      $ref: "2" 
     } 
    }, 
    UserProfile: { 
      $id: "4", 
      $type: "SPA01.EntityFramework.UserProfile, SPA01", 
      UserId: "dd59fcd1-9d88-4494-a37c-1c25155cb77d", 
      FirstName: "Duane", 
      LastName: "Haworth", 
      User: { 
      $ref: "2" 
      } 
    }, 
    Roles: [ ] 
}, 
membership: { 
     $ref: "3" 
}, 
userProfile: { 
     $ref: "4" 
} 

},

我創建一個用戶管理屏幕上我將顯示來自所有三個表格的信息。

我可以在使用Breeze時使用JsonResultsAdapter來做到這一點,還是我需要先在實體框架方面做些什麼?

由於

回答

1

微風支持這種情況下(在纏繞一個匿名對象實體)開箱;不需要額外的工作。例如,請參閱lookup lists example。 Breeze客戶端需要具有處理實體的元數據,但如果您使用EF和EFContextProvider,則這沒有問題。