Attributes Reference
Comprehensive guide to all RoomSharp attributes.
Entity Mapping
[Entity]
Marks a class as a database entity.
[Entity(TableName = "users")]
public class User { ... }
[PrimaryKey]
Marks a property as the primary key.
[PrimaryKey(AutoGenerate = true)]
public long Id { get; set; }
[ColumnInfo]
Customizes column mapping.
[ColumnInfo(Name = "user_email", TypeAffinity = "TEXT")]
public string Email { get; set; }
[Ignore]
Excludes a property from database mapping.
[Ignore]
public string TempData { get; set; }
[Index]
Defines an index on the entity.
[Index(Value = ["Email"], Unique = true)]
public class User { ... }
[ForeignKey]
Defines a foreign key constraint.
[ForeignKey(Entity = typeof(User), OnDelete = ForeignKeyAction.Cascade)]
public long UserId { get; set; }
DAO Operations
[Dao]
Marks an interface as a Data Access Object.
[Dao]
public interface IUserDao { ... }
[Query]
Defines a SQL query method.
[Query("SELECT * FROM users WHERE Id = :id")]
Task<User?> GetById(long id);
[Insert]
Defines an insert method.
[Insert]
Task<long> InsertAsync(User user);
[Update]
Defines an update method.
[Update]
Task UpdateAsync(User user);
[Delete]
Defines a delete method.
[Delete]
Task DeleteAsync(User user);
[Transaction]
Wraps a method in a database transaction.
[Transaction]
public async Task TransferAsync(...) { ... }
Database Configuration
[Database]
Marks a class as the database entry point.
[Database(Version = 1, Entities = [typeof(User)])]
public abstract class AppDatabase : RoomDatabase { ... }
[TypeConverter]
Registers a custom type converter.
[TypeConverter(typeof(DateConverter))]
public abstract class AppDatabase ...
Relations
[Relation]
Defines a relationship to load related entities.
[Relation(Entity = typeof(Post), ParentColumn = "Id", EntityColumn = "UserId")]
public List<Post> Posts { get; set; }