DB를 사용하기 전에 테이블을 변경하는 것과 비슷한 작업이 필요한 경우 EWS 확장 속성의 데이터 형식을 변경할지 알고 싶습니다.C# EWS 확장 된 속성의 MapiPropertyType 변경
현재 사용자 정의 확장 속성을 선언하고 사용하기 시작했지만 이제는 MapiPropertyType.Integer
에서 MapiPropertyType.Long
으로 변경하려고합니다.
static class MyAppSchema {
private static readonly Guid property_set = Guid.Parse("{my guid value}");
public static ExtendedPropertyDefinition ItemId = new ExtendedPropertyDefinition(
propertySetId: property_set,
name: "ItemId",
mapiType: MapiPropertyType.Integer
);
}
내가 현재 다음과 같이 사용 :
item.SetProperty<int>(MyAppSchema.ItemId, item_from_another_db.ItemId);
내가 사용하여 다음을 시작하고 싶은 다음
내 현재와 같은 예를 들어 속성 정의입니다 대신 속성 정의 :
static class MyAppSchema {
private static readonly Guid property_set = Guid.Parse("{my guid value}");
public static ExtendedPropertyDefinition ItemId = new ExtendedPropertyDefinition(
propertySetId: property_set,
name: "ItemId",
mapiType: MapiPropertyType.Long
);
}
내가 이런 식으로 사용을 시작 것 :
item.SetProperty<long>(MyAppSchema.ItemId, item_from_another_db.ItemId);
가 해당 사서함에있는 기존 데이터이고 난 아직 SearchFilter.IsEqualTo
같은 검색 필터를 사용할 수 있도록하고 싶습니다. 데이터 유형을 변경하면 나중에 문제를 해결할 수 있을지 걱정됩니다.
나는 너에게 그렇게 말하지 않기를 바랬다. 지원 문서가 있는지 아십니까? 내가 만들거나, 설정하고, 얻는 방법을 찾을 수 있었기 때문에, 또는 문서가 부족하여 불가능하다고 가정하고 있기 때문에? – Robert
이것은 특히 MAPI에서 주어진 것으로 처리됩니다. 일반 SQL 데이터베이스에서도 모든 기존 데이터를 새로운 유형으로 변환해야합니다 (예 : 변환 할 수없는 경우 (예 : 문자열을 int로 변환 할 수없는 경우). 그렇게 할 수있는 유일한 방법은 모든 데이터를 복사하고, 열을 삭제하고, 다시 만들고, 변환하고 복사해야합니다. 매우 비쌉니다. –
쉽게 참조 할 수 있도록 다음 MSDN 링크에서 속성을 삭제하는 방법을 보여줍니다. https://msdn.microsoft.com/en-us/library/office/dd633629(v=exchg.80).aspx – Robert