EF databaseModel 있습니다. 나는 나의 클래스를 직렬화한다 thet에는 EF DB 테이블 유형을 가진 분야가있다. 나는 deserealize하려고하고 null 필드가있는 필드가 있습니다.Protobuf 및 Entity Framework 데이터베이스 모델
class Myclass
{
public EFTable table {get;set;}
}
EFTable
- 문자열 str을;
- int num;
[글로벌 :: System.Data.Objects.DataClasses.EdmScalarPropertyAttribute (EntityKeyProperty = TRUE, ISNULLABLE = 거짓)] [글로벌 :: System.Runtime.Serialization.DataMemberAttribute()] :: 글로벌 시스템. CodeDom.Compiler.GeneratedCode ("System.Data.Entity.Design.EntityClassGenerator", "4.0.0.0")]
후 직렬화 EFTable - 문자열 STR = NULL - INT의 NUM = 0
이유 ? 임시 수업을 만들지 않고 어떻게 수정합니까? 당신이 당신의 모델에서 속성을 지정할 수없는 경우
public static byte[] Serialize(BaseInspection inspection)
{
using (var file = File.Create(path.ToString()))
{
Serializer.Serialize(file, inspection);
}
return File.ReadAllBytes(path.ToString());
}
static BaseInspection Desirialize(byte[] path)
{
using (Stream stream = new MemoryStream(path))
return Serializer.Deserialize<BaseInspection>(stream);
}
EFTable을 게시하십시오. EFTable의 속성에 대한 Proto 속성이 있습니까? –
EF DataBase Model \ Scheme을 만들 때 모든 것은 표준입니다. – Risa
ProtoBuf에는 필드 순서를 지정하는 두 가지 방법이 있습니다. 첫 번째는 각 속성에 속성을 지정하는 것입니다. 두 번째 것 - 런타임에이 RuntimeTypeModel을 생성하여 리플렉션으로 채우는 것입니다. –