Docs Menu
Docs Home
/ /
Atlas Device SDK
/ /

데이터 생성 - .NET SDK

이 페이지의 내용

  • Realm 객체 만들기
  • Realm 객체 업서트

문서를 만들거나 업데이트할 때 모든 쓰기는 트랜잭션에서 발생해야 합니다.

다음 코드는 새 Realm 객체 를 생성하는 두 가지 방법을 보여줍니다. 첫 번째 예시 에서는 먼저 객체 를 만든 다음 WriteAsync() 메서드 내에서 영역 에 추가합니다. 두 번째 예시 에서는 WriteAsync 차단 내에 문서 를 생성하고, 이 블록은 추가 작업을 할 수 있는 영역 객체 를 반환합니다.

var testItem = new Item
{
Name = "Do this thing",
Status = ItemStatus.Open.ToString(),
Assignee = "Aimee"
};
await realm.WriteAsync(() =>
{
realm.Add(testItem);
});
// Or
var testItem2 =
await realm.WriteAsync(() =>
{
return realm.Add<Item>(new Item
{
Name = "Do this thing, too",
Status = ItemStatus.InProgress.ToString(),
Assignee = "Satya"
});
}
);

문서를 업서트하는 것은 선택적 update 매개변수를 true 로 설정한다는 점을 제외하면 새 문서를 만드는 것과 동일합니다. 이 예에서는 고유한 Id 을(를) 가진 새 Item 객체를 만듭니다. 그런 다음 ID는 같지만 Name 값이 다른 항목을 삽입합니다. update 매개 변수를 true 로 설정했기 때문에 기존 레코드가 새 이름으로 업데이트됩니다.

var id = ObjectId.GenerateNewId();
var item1 = new Item
{
Id = id,
Name = "Defibrillate the Master Oscillator",
Assignee = "Aimee"
};
// Add a new person to the realm. Since nobody with the existing Id
// has been added yet, this person is added.
await realm.WriteAsync(() =>
{
realm.Add(item1, update: true);
});
var item2 = new Item
{
Id = id,
Name = "Fluxify the Turbo Encabulator",
Assignee = "Aimee"
};
// Based on the unique Id field, we have an existing person,
// but with a different name. When `update` is true, you overwrite
// the original entry.
await realm.WriteAsync(() =>
{
realm.Add(item2, update: true);
});
// item1 now has a Name of "Fluxify the Turbo Encabulator"
// and item2 was not added as a new Item in the collection.

돌아가기

CRUD