2013-05-05 2 views
1

가정하자 나는 다음과 같은 테이블이 있습니다삽입 후 ID를 결과 얻기

public class SomeItem 
{ 
    public int Id { get; set; } 

    [DataMember(Name = "text")] 
    public string Text { get; set; } 
} 

을 나는 쉽게 같은 것을 수행 할 수 있습니다

var items = await MobileService.GetTable<SomeItem>.Where(x=>x.Id > 50).ToListAsync(); 
//print items here 

을하지만 난 얻을 수있는 방법을 찾을 수 없어 삽입 된 결과 항목 예를 들어 SomeItem에서 ID가 필요할 수 있습니다. 이것은 내가 할 수있을 싶은 것입니다 :

var item = await MobileService.GetTable<SomeItem>.Insert(new SomeItem{Text="hi"}).Result; 
+1

왜 그냥하지 'var에 인 newItem = 새로운 SomeItem {텍스트 = "안녕하세요"}'다음'newItem'입니까? 그럼 바로 거기에서'newItem'을 사용할 수 있습니다! –

+0

@MatthewWatson은 DB가 자동으로 생성하는 Id (키)로 newItem을 채 웁니다. – snotyak

+0

아니, 그럴 수 없다 - 나는 당신이 이드를 직접 생각하고 있다고 생각 했겠지만 당연히, 나는 당신이 볼 수 없다. –

답변

2

당신은 당신이 당신이 삽입 한 후 사용할 수있는 그것에 대한 참조를 가질 수 있도록, 별도로 삽입 할 항목을 만들 수 있습니다

var newItem = new SomeItem{Text="hi"}; 
await MobileService.GetTable<SomeItem>.Insert(newItem); // Or whatever syntax you need here! 
// Now you can use newItem after it's been inserted (and the 'Id' key has been updated by the insert) 
+0

감사합니다. 이게 효과가 있었을 때 나는 정말로 놀랐다 ... – snotyak

+0

(누구에게도 말하지 마라. 그러나 나는 그렇게했다.) –

0

(현재) 베타 클라이언트 SDK에는이 변경 사항이 있습니다. 세부 사항에이 게시물을 참조 : 당신은이 질문에 대해 제공되는 코드에서

http://blogs.msdn.com/b/carlosfigueira/archive/2013/03/14/azure-mobile-services-managed-client-upcoming-breaking-changes.aspx

를, "SomeItem는"알려진 데이터 형이기 때문에, 나는 행동이 변화 될 것이라고 생각하고 객체에 패치됩니다 장소. 형식이 지정되지 않은 데이터 (JSON)를 사용하는 경우 개체가 제자리에 패치되지 않습니다. ID의 값을 검사하기 위해 반환 된 객체에 의존해야합니다. 카를로스 (Carlos)는 위의 게시물에서 더 자세하게 설명했다.

네이트