Вот что у меня сейчас есть в классе MyContext
public class MyContext:DbContext
{
public DbSet<Country> Countries { get; set; }
public DbSet<State> States { get; set; }
}
Что я хочу, так это поместить все эти свойства DbSet
в отдельный файл и просто иметь один оператор в классе MyContext
, чтобы добавить все DbSet
из этого отдельного файла.
@ChrisPratt По сути, мы используем какой-то сторонний шаблон, и моя идея состоит в том, чтобы поместить наш DbSet и Fluent API в отдельный файл, а не объединять наш DbSet/Fluent API с DbSet/Fluent API, полученным из шаблона. Спасибо !
Вы не можете выполнять частичные классы в сборках. Может быть, вместо этого наследство.
хорошо, но у нас есть файл DbContext.cs, который исходит из шаблона, поэтому можно ли использовать частичный класс для этого файла DbContext?
Используйте разделяемый класс и определите там свойства DbSet<T>
.
MyContext.cs
public partial class MyContext:DbContext
{
}
MyContextProperties.cs
public partial class MyContext:DbContext
{
public DbSet<Country> Countries { get; set; }
public DbSet<State> States { get; set; }
}
В чем смысл? Лучшее, что вы можете сделать, это частичный класс, как предлагает @Igor. В конечном счете реквизиты
DbSet
должны быть частью вашего контекстного класса; используя частичные классы, просто позвольте вам разделить его на отдельные файлы. Однако, как правило, это анти-шаблон. Класс и все его функции должны быть доступны для просмотра. Необходимость отслеживать различные частичные реализации и собирать их воедино в голове только усложняет работу с вашим кодом и его понимание.