Разработка приложения с использованием PCL и IoC с аннотациями

Я пишу приложение с использованием библиотек PCL и шаблонов IoC для облегчения кросс-платформенной разработки на iOS, Android и т. Д. Мой репозиторий реализует паттерн IRepository, и у меня есть конкретная реализация, использующая SQLite.Net ORM. Чтобы в полной мере воспользоваться SQLite.Net, мне нужно украсить свои модели аннотациями, например:

public class Stock
{
   [PrimaryKey, AutoIncrement]
   public int Id { get; set; }
}

На каком-то этапе я мог бы решить разработать другую конкретную реализацию, например, Хранилище X.

Мой вопрос:

Наличие таких аннотаций вводит зависимость от SQLite для моей модели / сущности, которая по сути является просто POCO. Итак, как у меня есть аннотации, без зависимости? Например, если в будущем я использовал Repository X и удалил SQLite, мне нужно было бы удалить аннотации?

Одним из способов, которым я думал об этом, было определение абстрактного класса, и у моего производного класса есть аннотации. Какие-нибудь мысли?

1 ответ

Вы можете увидеть, есть ли у Sqlite какой-либо тип сопоставления XML-карт класса / атрибутов (как это делает LINQ.Data)

или любой тип использования метаданных. Как MVC делает на моделях:

[MetadataType(typeof(TestMetadata))]
class Test
{
    public int Id { get; set; }
}

class TestMetadata
{
    [DisplayName("ID")]
    public int Id { get; set; }
}
Другие вопросы по тегам