MVC, Entity Framework, Durandal 및 Breeze JS를 사용하고 있습니다. (단순화 된) 사용자가 있습니다.Breeze JS로 이미지 탐색 속성을 확장 할 수 없습니다.
public class User : EntityBase<Guid>, IAggregateRoot
{
public Guid Id { get; set; }
public string UserName { get; set; }
public string FirstName { get; set; }
public string LastName { get; set; }
[ForeignKey("UserImage")]
public virtual Guid? ImageId { get; set; }
public virtual UserImage UserImage { get; set; }
}
UserImage 클래스는 다음과 같습니다. 이미지의 크기를 제한해야한다는 것을 알고 있습니다. (아마이 문제인가?) : 현재 사용자를 얻을 클라이언트에서
public IQueryable<User> GetCurrentUser()
{
IPrincipal principal = HttpContext.Current.User;
var users = _uow.Users.FindBy(u => u.UserName.Equals(principal.Identity.Name));
if (!users.Any())
{
throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.Unauthorized));
}
return users;
}
그리고 두 통화 : 내가있어
public class UserImage
{
public Guid Id { get; set; }
[MaxLength]
public byte[] Image { get; set; }
}
서버 API 함수는 현재 사용자를 얻을 수 . 첫 번째는 쉘에 있습니다
function loadCurrentUser() {
return uow.CurrentUser.all().then(function (newUser) {
log('Welcome to the Site ' + newUser[0].FullName() + '!', newUser[0], true);
config.CurrentUser(newUser[0]);
return true;
});
}
두 번째는 ManageUser의 뷰 모델에 있습니다
function activate() {
return uow.CurrentUser.all(['UserImage']).then(function (user) {
self.CurrentUser(user[0]);
return $.when(init()).then(boot());
}).fail(function() {
return router.activate('accounts/login');
});
}
지금 나는 ManageUser 페이지에 이미지를로드하고 저장하고 피들러에 보여줍니다 수있는 ImageId 및 이미지가 서버로 전송됩니다. 그런 다음 BeforeSaveEntity 절편을 검사하여 저장되는 두 개의 엔터티를 보여줍니다. ImageId와
- 업데이트 된 사용자 데이터는 또한 데이터베이스에서 볼 수
- 셸 호출에서 사용자가 반환되고 ImageId가 설정되었지만 쿼리를 확장하지 않았기 때문에 UserImage가 전송되지 않았 음을 알 수 있습니다.
- Manage User (사용자 관리) 호출에서 User가 반환되지만 ImageId 만 보내지고 Image 객체는 JSON에서 제외되었습니다.
누구든지이 문제를 이미지로 보았습니까? 내 모든 다른 확장이 제대로 작동하는 것 같습니다. 누구든지 breeze를 사용하여 이미지 경로에 파일 경로를 저장하고 미디어 저장소에 azure를 사용하는 예가 있습니까?
응답 해 주셔서 감사합니다. 이번 주말에이 접근법을 더 자세히 살펴 보겠습니다. 나는 바람의 힘을 시험하기 위해 주로 이런 식으로 노력했다. 따라서 페이지에서 사용자를 관리하고 이미지를 추가하여 저장하는 방법을 사용하면 관리 대상 사용자를 '/ Image/ImageId'로 가정 한 'UserImage'로 저장 한 'SaveChanges'를 호출 한 다음 이미지 컨트롤러로 이미지를 업로드 하시겠습니까? – user2344707
답변을 업데이트했습니다. –
정말 좋은 방법입니다. – user2344707