Ste*_*enQ 3 c# sql-server serialization entity-framework
我想将以下类映射到表,使用实体框架,最好使用流畅的 api。
public class MyEntity
{
public int Id {get;set;}
public string Name {get;set;}
public int Age {get;set;}
public string OtherData {get;set;}
public List<Blabla> BlaBlaList {get;set;}
}
Run Code Online (Sandbox Code Playgroud)
表 MyEntity:
column Id
column Name
column SerializedData
Run Code Online (Sandbox Code Playgroud)
是否可以仅将 Id 和 Name 映射到列,以及在“SerializedData”列中序列化的所有其他属性?
如果不是“仅”其他属性,则整个对象也可能在 SerializedData 列中被序列化
谢谢,史蒂文
类似于德鲁的答案的另一个答案是执行以下操作:
public class MyEntity : IMySerializable
{
public int Id {get;set;}
public string Name {get;set;}
[NotMapped]
public int Age {get;set;}
[NotMapped]
public string OtherData {get;set;}
[NotMapped]
public List<Blabla> BlaBlaList {get;set;}
public byte[] SerializedData
{
get
{
return this.MySerialize();
}
set
{
this.MyDeserialize(value);
}
}
}
Run Code Online (Sandbox Code Playgroud)
然后是一种扩展方法,允许您对多个实体执行此操作:
public static IMySerializableExtensions
{
public static byte[] MySerialize<T>(this T instance)
where T : IMySerializable
{
byte[] result = // ...
// code
return result;
}
public static void MyDeserialize<T>(this T instance, byte[] value)
where T : IMySerializable
{
// deserialize value and update values
}
}
Run Code Online (Sandbox Code Playgroud)
您可以找出要反序列化/序列化的属性,因为它们将具有NotMappedAttribute。