C# 如何使用NPoco将嵌套对象保存在同一个表中?

C# 如何使用NPoco将嵌套对象保存在同一个表中?,c#,npoco,C#,Npoco,我有一门课是这样的: public class AuthEntity { public int Id { get; set; } public AuthResource Resource { get; set; } public int ActionId { get; set; } } 其中AuthResource是: public class AuthResource { public long ResourceId { get; private set; }

我有一门课是这样的:

public class AuthEntity 
{
  public int Id { get; set; }

  public AuthResource Resource { get; set; }

  public int ActionId { get; set; }
}
其中AuthResource是:

public class AuthResource 
{
  public long ResourceId { get; private set; }

  public int ResourceType { get; private set; }
}
存储数据的表具有以下字段:

  • 身份证
  • 足智多谋的
  • 资源类型
  • ActionId
我可以很好地读取AuthEntity(包括资源属性),但不知道如何插入AuthEntity记录。NPoco说没有资源领域。如何将嵌套对象字段映射到表字段


谢谢

您的表结构表明ResourceId和ResourceType是AuthEntity的成员,而不是单独的类。如果希望将AuthResource作为单独的类,可以使AuthEntity从AuthResource继承,例如

public class AuthResource
{
     public long ResourceId { get; private set; }
     public int ResourceType { get; private set; }
}

public class AuthEntity : AuthResource
{
    public int Id { get; set; }   
    public int ActionId { get; set; }
}

通过这种方式,AuthEntity将包含您希望它具有的ResourceId和ResourceType值,并且AuthResource可用于实现相同结构的其他类,在我看来,这就是您所寻找的。

NPoco文档说,您可以通过映射到嵌套对象来实现这一点

db.Fetch<AuthEntity, AuthResource>("select query to db")

读取操作不是问题,它工作得很好。我要做的是在数据库中插入AuthEntity对象,并自动将AuthResource属性映射到表中的属性。我可以这样做,但AuthResource必须聚合到AuthEntity,而不是它的父级。
public class AuthResource
{
     public long ResourceId { get; set; }
     public int ResourceType { get; set; }
}