1

我正在使用 sqlite 和 c# sqlite-net 库。我的一些实体:

public class Product
{
    [PrimaryKey, AutoIncrement]
    public int Id { get; set; }
    [MaxLength(50)]
    public string Name { get; set; }
    [MaxLength(50)]
    public string Brand { get; set; }
    [MaxLength(50)]
    public string Type { get; set; }
    [MaxLength(50)]
}

public class ProductImage
{
    public int Id { get; set; }
    public string Name { get; set; }
    public string Container { get; set; }
    public int ProductId { get; set; }
}

现在所有实体都属于一个用户,用户应该始终只使用他自己的实体。所以当我在数据库中插入一个实体时,我想用它来存储用户 ID。但是...我不想将 userId 添加到我的所有域类中。

我现在像这样存储我的实体:

  • 等待_databaseManager.GetDatabaseInstance().InsertAsync(entity);

并像这样选择:

  • var products = await _databaseManager.GetDatabaseInstance().Table().ToListAsync();

那么 sqlite-net 有没有办法将 userId 添加到数据库而不将其添加到所有域类?

4

1 回答 1

1

它不支持继承吗,就像查看类型的层次结构一样?我建议它会,或者至少应该。因此,如果是这样,您可以使用抽象基类或接口。像这样的东西:

public abstract class StandardEntity {
  public int UserId { get; set; } // decorate with attributes as necessary
}

并继承:

public class Product : StandardEntity {

}
于 2012-12-17T14:16:36.550 回答