У меня есть контекст, который содержит такие вещи, как:Имея проблемы при создании макета контекста в Entity Framework 5
public partial class MyEntities : DbContext
{
...
public DbSet<Cat> Cats { get; set; }
}
И я хочу, чтобы дразнить его.
Я создаю еще один частичный класс, который реализует интерфейс, который я называю IContext
.
я должен поставить в этот интерфейс
public interface IContext
{
DbSet<Cat> Cats { get; set; }
}
Тогда я могу создать макет и все довольны.
За исключением я не хочу использовать DbSet<Cat>
в моем интерфейсе. Это кажется неправильным, поскольку я не буду использовать базу данных. Есть ли способ изменить его или лучшее решение? Очевидно, что контекст автогенерируется из шаблона, поэтому я не могу его редактировать без его потери при регенерации.
Я не уверен, как действовать при создании фальшивого контекста. Есть идеи?
Я не знаю, как я могу изменить '' DbSet к '' IDbSet , потому что '' DbSet существует в авто сгенерированных 'MyEntities' класса –
NibblyPig
Не уверен, как вы Автогенераторный. Если вы используете шаблон T4 для этого, вы можете его изменить, это не должно быть большой проблемой. Вы все еще можете пойти с T Set(). Но это потребует, чтобы вы записывали свои запросы по-другому, не используя свойства набора DbContext. –
jure
@jure Вы хотите сказать 'IDbSet Set ();'? Просто 'T' для типа возврата будет означать' Set () 'возвращает' Cat'. –
grant