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; }
}

現在、すべてのエンティティはユーザーに属しており、ユーザーは常に自分のエンティティのみを操作する必要があります。そのため、データベースにエンティティを挿入するときに、userId を格納したいと考えています。ただし... すべてのドメイン クラスに userId を追加したくありません。

現在、エンティティを次のように保存しています。

  • await _databaseManager.GetDatabaseInstance().InsertAsync(エンティティ);

そして次のように選択します:

  • 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 に答える