在Entity Framework Core中将DbSet<TEntity>属性移至单独的类中

3

这是我目前在MyContext类中拥有的内容

 public class MyContext:DbContext
 {           
        public  DbSet<Country> Countries { get; set; }
        public  DbSet<State> States { get; set; }
 }

我想要的是将所有这些DbSet属性放置在一个单独的文件中,并只有一个语句在MyContext类中添加来自该单独文件的所有DbSet

1
有什么意义呢?最好的方法就是像@Igor建议的那样使用部分类。最终,DbSet属性必须成为上下文类的一部分;使用部分类只是让你将其拆分成单独的文件。然而,这通常是一个反模式。一个类及其所有功能应该是一目了然的。不得不追踪各种部分实现并在头脑中将它们组合起来只会使您的代码更难处理和理解。 - Chris Pratt
基本上我们正在使用一些第三方模板,我的想法是将我们的DbSet和Fluent API放入单独的文件中,不要将我们的DbSet/Fluent API与来自模板的DbSet/Fluent API混合在一起。 谢谢! - Bipn Paul
1
你不能在不同的程序集之间使用部分类。可以考虑使用继承。 - Chris Pratt
好的,但我们有一个来自模板的DbContext.cs文件,那么为该DbContext文件使用partial class可以吗? - Bipn Paul
1个回答

3

使用部分类并在其中定义 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; }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接