【问题标题】:Using an object from another project in Visual Studio在 Visual Studio 中使用另一个项目中的对象
【发布时间】:2019-10-31 08:51:09
【问题描述】:

我想从窗口代码中发送或能够访问数据库,所以我正在考虑在主窗口上添加一个构造函数并从 Program 类发送上下文,在那里我显示我的窗口并加载数据库,但是上下文在程序项目中,而且我已经在引用window项目,所以不能有循环引用

我有两个项目,一个用于 GUI,另一个包含所有类,包括实体框架数据库的上下文

class ProgramControl: DbContext
{

    public DbSet<Asignaturas> Asigns { get; set; }

    public DbSet<Alumno> Alumnos { get; set; }

    public DbSet<Profesor> Profes { get; set; }

    public DbSet<Aula> Aulas { get; set; }




}


public class Program
{
    public static void Main(string[] args)
    {
        using (var db = new ProgramControl()) {
            MainWindow mainWindow = new MainWindow();
            mainWindow.Show();
        }
    }
}


public partial class MainWindow : Window
{
    public static MainWindow AppWindow;


    public MainWindow()

    {
        InitializeComponent();
        AppWindow = this;

    }

    private void AlumnoButton_Click(object sender, RoutedEventArgs e)
    {
        Window1 window1 = new Window1();
        window1.Show();
    }

    private void ExitButton_Click(object sender, RoutedEventArgs e)
    {
        Close();
    }

    private void AsignaturasButton_Click(object sender, RoutedEventArgs e)
    {
        Window2 window2 = new Window2();
        window2.Show();
    }

    private void ProfesorButton_Click(object sender, RoutedEventArgs e)
    {
        Window3 window3 = new Window3();
        window3.Show();
    }
}

【问题讨论】:

    标签: c# object constructor


    【解决方案1】:

    您的程序类通常应该是您的 GUI 项目(也有窗口类)的一部分。然后在您的 GUI 项目中,您只需要引用 db(上下文),反之亦然,这会消除循环依赖。

    另外,你调用 MainWindow 的构造函数,参数 db(ProgramControl 的实例;entityContext)不在你的代码中?!

    【讨论】:

    • 是的,我在编辑帖子时删除了构造函数,忘记在 Program 类中删除它。对不起。
    • 没问题,您尝试了建议的解决方案吗?
    • 已修复。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2016-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-22
    • 2017-04-24
    相关资源
    最近更新 更多