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
谢谢您的表结构表明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; }
}