Мы используем интерфейсы для представления классов сущностей в нашей модели предметной области. У нас есть конкретные реализации их благодаря использованию LinqToSql. Мы добавили фабричный метод к каждому классу LinqToSql, который используется нашим сервисным уровнем для создания экземпляра новой сущности (обратите внимание; в отличие от выполняемого этим атрибута контроллера DataBind).
Реализация DataBinder по умолчанию в MonoRail будет игнорировать свойства, определенные как интерфейсы.
В идеале, мы не хотим создавать экземпляры наших классов уровня данных в MonoRail - весь смысл интерфейсов состоит в том, чтобы разделить эти проблемы.
Кроме того, мы не хотим создавать еще один набор конкретных классов, отличных от LinqToSql, единственной задачей которых является перевод между слоями.
Это конец действительно длинного дня здесь; пожалуйста, можете ли кто-нибудь помиловать и указать нам на те части IDataBinder, которые мы должны перегружать своими собственными реализациями, или намекнуть на другие подходы, которые мы могли бы попробовать? ; -)