Вы можете очень легко написать свои собственные классы, используя Linq-to-SQL - просто включает рисование ваших классов с некоторыми атрибутами.
Например, это очень простая таблица, которую я имею в одном из моих проектов, и она прекрасно работает с Linq-to-SQL:
[Table(Name = "Categories")]
public class Category : IDataErrorInfo
{
[Column(IsPrimaryKey = true, IsDbGenerated = true, AutoSync = AutoSync.OnInsert)]
public int Id { get; set; }
[Column] public string Name { get; set; }
[Column] public string ExtensionString { get; set; }
}
Код был очень прост, особенно если вы приводите имена своих свойств в соответствие с именами таблиц (вам не обязательно).
Тогда вам просто нужен репозиторий для подключения к БД:
class CategoryRepository : ICategoryRepository
{
private Table<Category> categoryTable;
public CategoryRepository(string connectionString)
{
categoryTable = (new DataContext(connectionString)).GetTable<Category>();
}
}
Конечно, есть еще кое-что, но это показывает вам самые основы, и это не сложно сделать, когда вы это поймете. Таким образом, вы имеете 100% контроль над своими классами и можете использовать Linq-to-SQL.
Я научился этому подходу из Pro ASP.NET MVC Framework , потрясающей книги.
Если вы хотите увидеть больше, все мои классы Linq-to-SQL были написаны с нуля для одного из моих проектов, вы можете просмотреть здесь .