2009-07-09 4 views
0

Я хочу использовать свои собственные классы моделей в шаблоне репозитория. Я не хочу зависеть от классов, создаваемых LINQ to SQL. Это жизнеспособно? Как справиться с Where (и другими выборами, когда сво Func<MyModel, bool> но LINQ к SQL хочет Func<LinqToSqlModel, bool>?Образец репозитория с использованием LINQ To SQL без генерируемых моделей

Я придумал это, но я мог бы начать над инженером является, ...

interface IModelConverter<T1, T2> 
{ 
    T2 Convert(T1 item); 
    T1 Convert(T2 item); 
} 

ли это слишком много перенаправление?

Все, что я хочу сделать, это хранилище MyModel, которое в состоянии иметь любую реализацию в задней части ли LINQ к SQL, LINQ к Enities и т.д. ли какие-либо ресурсы ?

ответ

0

Я решил переключиться на Fluent NHibernate.

2

Думаю, вы создаете много накладных расходов здесь. Все классы, создаваемые Linq to Sql, являются частичными, поэтому, если вы правильно настроите свои пространства имен, вы можете просто расширить эти классы с помощью любой требуемой информации. И если есть что-то, что вы хотите скрыть, установите его уровень доступа в внутренний в dbml.

Я действительно не рекомендовал бы переписывать классы в целом.

0

Я не совсем понимаю, зачем вам нужно все реализовать с нуля. Но если вы хотите иметь больше элементов управления в репозитории, вы можете просто использовать для частичного класса.

0

Если вы хотите, чтобы ваша модель заменила модель linq на sql, вы можете украсить свою модель атрибутами, что позволяет вам в основном определить вашу собственную модель и рассказать linq на sql, как подключить вашу модель к datacontext (который вы должны строить, а)

Пример:

[Table(Name="SomeTable")] 
public class SomeClass 
{ 
    [Column(IsPrimaryKey=true, IsDbGenerated=true, AutoSync=AutoSync.OnInsert)] 
    internal int MyID {get; set;} 

    [Column] 
    public String MyString {get; set;} 
} 

вы можете создать DataContext и сказать ему, как обращаться с вашей модели, как так:

var context = new DataContext(connectionString); 
context.GetTable<SomeClass>(); 
+0

Я не хочу, чтобы моя модель была соединена с linq до sql. –

 Смежные вопросы

  • Нет связанных вопросов^_^