[MONGODB] MongoDB를 C #을 드라이버 - 바인딩에 필드를 무시
MONGODBMongoDB를 C #을 드라이버 - 바인딩에 필드를 무시
MongoDB를 및 C #을 사용하여 FindOne ()를 사용하면 객체에없는 필드를 무시하는 방법은 무엇입니까?
EG, 예를 들어 모델.
public class UserModel
{
public ObjectId id { get; set; }
public string Email { get; set; }
}
이제 우리는 또한 MongoDB의 컬렉션에서 암호를 저장하지만, 객체 밖으로 이상에 바인딩하고 싶지 않아요. 우리가 같은 가져 오기 작업을 수행 할 때,
var query = Query<UserModel>.EQ(e => e.Email, model.Email);
var entity = usersCollection.FindOne(query);
우리는 다음과 같은 오류가
Element 'Password' does not match any field or property of class
이 모델과 일치하지 못할 필드를 무시 몽고에게 어쨌든 있나요?
해결법
-
==============================
1.예. 그냥 BsonIgnoreExtraElements 속성을 사용하여 UserModel 클래스를 장식 :
예. 그냥 BsonIgnoreExtraElements 속성을 사용하여 UserModel 클래스를 장식 :
[BsonIgnoreExtraElements] public class UserModel { public ObjectId id { get; set; } public string Email { get; set; } }
이름에서 알 수 있듯이, 드라이버는 예외 상황을 던지는 대신 여분의 필드를 무시합니다. 자세한 내용은 여기 - 추가 요소를 무시.
-
==============================
2.그러나 또 다른 가능한 해결책은 이것에 대한 규칙을 등록하는 것입니다.
그러나 또 다른 가능한 해결책은 이것에 대한 규칙을 등록하는 것입니다.
이 방법은, 우리는 [BsonIgnoreExtraElements] 모든 클래스에 주석을 달 필요가 없습니다.
어딘가에는 설치 다음을 몽고 클라이언트를 만들 때 :
var pack = new ConventionPack(); pack.Add(new IgnoreExtraElementsConvention(true)); ConventionRegistry.Register("My Solution Conventions", pack, t => true);
-
==============================
3.예. (대신 당신에게 모델 클래스를 편집의) 또 다른 방법은 SetIgnoreExtraElements와 RegisterClassMap을 사용하는 것입니다.
예. (대신 당신에게 모델 클래스를 편집의) 또 다른 방법은 SetIgnoreExtraElements와 RegisterClassMap을 사용하는 것입니다.
당신이 당신의 드라이버를 초기화 할 때 귀하의 경우에는 그냥이 코드를 추가합니다 :
BsonClassMap.RegisterClassMap<UserModel>(cm => { cm.AutoMap(); cm.SetIgnoreExtraElements(true); });
추가 요소를 무시 - 현재 클래스 매핑을 사용하여 추가 요소를 무시에 대한 자세한 내용을보실 수 있습니다.
from https://stackoverflow.com/questions/23448634/mongodb-c-sharp-driver-ignore-fields-on-binding by cc-by-sa and MIT license
'MONGODB' 카테고리의 다른 글
[MONGODB] 왜 MongoDB를의 이익이 예상되는 몽구스 사용 스키마는 그것의 스키마이어야 하는가? (0) | 2019.12.22 |
---|---|
[MONGODB] ObjectId가가 몽구스를 사용하여 검색하는 문서를 찾을 수 없습니다 (0) | 2019.12.22 |
[MONGODB] MongoDB를 맵리 듀스에서 어떻게 값 개체를 평평하게 할 수 있습니까? (0) | 2019.12.22 |
[MONGODB] 어떻게 몽구스 모델의 메소드를 정의합니까? (0) | 2019.12.22 |
[MONGODB] 몽고없이 유성 (0) | 2019.12.22 |