使用 BsonIgnore 忽略 Composite 属性 中的属性
Ignoring Properties inside Composite Property with BsonIgnore
我使用下面的代码来使用 BsonIgnore
忽略 class
中的一些 属性。但是它忽略了整个对象。
public class User
{
public string Username { get; set; }
public string Password { get; set; }
[BsonIgnore,JsonProperty(PropertyName = "CreateDate")]
public ICollection<Role> Roles { get; set; }
}
public class Role
{
public int RoleId {get; set;}
public string RoleName { get; set; }
public DateTime CreateDate { get; set;}
}
我有 2 个问题。
- 如何只忽略 class 中的某些属性?我不应该直接在
Role
class. 中使用 BsonIgnore
- 如何忽略多个属性?如下所示。
代码:
[BsonIgnore,JsonProperty(PropertyName = "CreateDate")]
[BsonIgnore,JsonProperty(PropertyName = "RoleId")]
public ICollection<Role> Roles { get; set; }
您可以通过两种方式定义 classes 的序列化方式:使用属性或为您的 [= 创建 class 映射 20=] 在你的初始化代码中。 class map 是定义 class 和 BSON 文档之间映射的结构。它包含参与序列化的 class 字段和属性的列表,并且为每个定义所需的序列化参数(例如,BSON 元素的名称、表示选项等)。所以,在你的情况下你可以这样做:
BsonClassMap.RegisterClassMap<Role>(cm =>
{
cm.AutoMap();// Automap the Role class
cm.UnmapProperty(c => c.RoleId); //Ignore RoleId property
cm.UnmapProperty(c => c.CreateDate);//Ignore CreateDate property
});
您可以在此 link.
中找到有关此主题的更多信息
我使用下面的代码来使用 BsonIgnore
忽略 class
中的一些 属性。但是它忽略了整个对象。
public class User
{
public string Username { get; set; }
public string Password { get; set; }
[BsonIgnore,JsonProperty(PropertyName = "CreateDate")]
public ICollection<Role> Roles { get; set; }
}
public class Role
{
public int RoleId {get; set;}
public string RoleName { get; set; }
public DateTime CreateDate { get; set;}
}
我有 2 个问题。
- 如何只忽略 class 中的某些属性?我不应该直接在
Role
class. 中使用 - 如何忽略多个属性?如下所示。
BsonIgnore
代码:
[BsonIgnore,JsonProperty(PropertyName = "CreateDate")]
[BsonIgnore,JsonProperty(PropertyName = "RoleId")]
public ICollection<Role> Roles { get; set; }
您可以通过两种方式定义 classes 的序列化方式:使用属性或为您的 [= 创建 class 映射 20=] 在你的初始化代码中。 class map 是定义 class 和 BSON 文档之间映射的结构。它包含参与序列化的 class 字段和属性的列表,并且为每个定义所需的序列化参数(例如,BSON 元素的名称、表示选项等)。所以,在你的情况下你可以这样做:
BsonClassMap.RegisterClassMap<Role>(cm =>
{
cm.AutoMap();// Automap the Role class
cm.UnmapProperty(c => c.RoleId); //Ignore RoleId property
cm.UnmapProperty(c => c.CreateDate);//Ignore CreateDate property
});
您可以在此 link.
中找到有关此主题的更多信息