如何将userId添加到每个查询而不将其添加到所有域类?

时间:2012-12-17 14:09:25

标签: c# sqlite sqlite-net

我正在使用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; }
}

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

我现在正在存储我的实体:

  • await _databaseManager.GetDatabaseInstance()。InsertAsync(entity);

并选择如下:

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

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

1 个答案:

答案 0 :(得分:1)

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

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

继承:

public class Product : StandardEntity {

}