ObjectId
문자열 표현을 ASP.NET 코어를 통해 반환하는 방법. 사용자 속성의ASP.NET 코어에서 ObjectID를 반환하는 코드
return new ObjectResult(new { session, user });
하나는 ObjectId
유형 인 UserId
입니다 :
나는 내 컨트롤러에서 작업의 다음과 같은 결과가 있습니다.
그러나, 이것은 내가 응답이 단순히 동일한 구조의 문자열 표현입니다 58625d5201c4f202609fc5f3
을 싶습니다
"id": {
"timestamp": 1482840000,
"machine": 6645569,
"pid": 19448,
"increment": 5052063,
"creationTime": "2016-12-27T12:00:00Z"
}
로 응답으로 반환됩니다.
반송 된 모든 메시지에 대해 쉽게이 방법이 있습니까? ObjectIds
?
편집 추가 좀 더 많은 데이터
다음은 사용자 클래스입니다.ObjectId
는
MongoDB.Bson.ObjectId
public class User
{
public ObjectId Id { get; set; }
public string Name { get; set; }
public string Email { get; set; }
public string PasswordHash { get; set; }
public string PasswordSalt { get; set; }
}
내 컨트롤러에서 Get 방법입니다. Controller
은 Microsoft.AspNetCore.Mvc.Controller
입니다. 당신은 명시 적으로 JSON 변환기에 OBJECTID를 작성해야
public async Task<T> GetOne<T>(ObjectId id)
{
var collectionname = typeof(T).Name;
var collection = _database.GetCollection<T>(collectionname);
var filter = Builders<T>.Filter.Eq("_id", id);
var result = await collection.Find(filter).ToListAsync();
return result.FirstOrDefault();
}
ObjectId는 기본적으로 문자열로 serialize되어야합니다. –
명백하게 아닙니다. 나는 여기에 특별한 것을 설정하지 않았지만 이것은 내가 봉사에서 얻은 것입니다. –
.ToString() Id 속성에 명시 적으로 수행하십시오. 내가 아는 한 .NET Core는 내부적으로 JSON.net을 사용하여이를 처리해야한다. 귀하의 문서, 저장소 및 서비스 코드를 공유 할 수 있습니까? –