Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何获取SQL Server Express数据库和DbContext对象以共享数据?_C#_Database_Entity Framework_Dbcontext_Sql Server Express - Fatal编程技术网

C# 如何获取SQL Server Express数据库和DbContext对象以共享数据?

C# 如何获取SQL Server Express数据库和DbContext对象以共享数据?,c#,database,entity-framework,dbcontext,sql-server-express,C#,Database,Entity Framework,Dbcontext,Sql Server Express,我对这一切还很陌生,所以希望这是一个快速修复 我有一个通过Microsoft SQL Server Express创建的SQL Server Express数据库。我正在使用VisualStudioCommunityEdition 我正在尝试创建一个简单的程序来输入/检索/操作数据库信息 如果将数据库设置为程序数据源,然后将表单控制器绑定到数据库表,则表单控件将显示数据库表中的记录。没有问题,但我希望能够在程序中轻松使用数据,因此我正在研究DbContext 我可以通过VisualStudio的

我对这一切还很陌生,所以希望这是一个快速修复

我有一个通过Microsoft SQL Server Express创建的SQL Server Express数据库。我正在使用VisualStudioCommunityEdition

我正在尝试创建一个简单的程序来输入/检索/操作数据库信息

如果将数据库设置为程序数据源,然后将表单控制器绑定到数据库表,则表单控件将显示数据库表中的记录。没有问题,但我希望能够在程序中轻松使用数据,因此我正在研究
DbContext

我可以通过VisualStudio的“从数据库创建模型”向导生成
DbContext
,它的表链接看起来很正确

如果我声明了
DbContext
,然后将其设置为项目的数据源,则在创建它们时会产生这些数据和记录。我可以使用这些对象来处理我想要的数据

但是,这些记录不与数据库共享。数据库中的数据也不会以这种方式发送到程序。在SQLServerExpress中创建的现有记录在启动时不包括在内,因为如果我直接链接到数据库,这些记录就会包括在内

您知道如何使用
DbContext
接收现有数据库信息,并将新的/更新的数据发送回SQL Server数据库吗

必须有一个简单的答案,而且很可能已经在这里了。我只是觉得有点难找到我想要的具体答案,因为我还是个新手,不知道如何清楚地问这个问题

他们为什么不共享数据?有没有我忽略的命令


干杯

如果您在Express edition数据库中的SQL Server Management Studio中创建了数据库,那么它很可能存储在SQL Server的
SQLEXPRESS
实例中,您可以使用服务器/实例名
\SQLEXPRESS
(本地)访问该实例\SQLEXPRESS
yourpname\SQLEXRPESS

然而,Visual Studio倾向于使用SQL Server Express的
LocalDB
实例—面向开发人员的SQL Server“版本”—因此您的连接字符串可能会使用类似
(LocalDB)\v11.0
或类似的东西—它基本上连接到一个完全不同的SQL Server实例


如果要使用数据库的
SQLEXPRESS
实例(即使用SQL Server管理工具创建的实例),则只需确保实体框架连接字符串(通常在
web.config
文件中)也使用
(本地)\SQLEXPRESS
作为
数据源=
(或连接字符串中的
server=
)参数如果您在Express edition数据库中的SQL server Management Studio中创建了数据库,则它很可能存储在SQL server的
SQLEXPRESS
实例中,您可以使用服务器/实例名称
\SQLEXPRESS
(本地)访问该实例\SQLEXPRESS
yourpname\SQLEXRPESS

然而,Visual Studio倾向于使用SQL Server Express的
LocalDB
实例—面向开发人员的SQL Server“版本”—因此您的连接字符串可能会使用类似
(LocalDB)\v11.0
或类似的东西—它基本上连接到一个完全不同的SQL Server实例


如果要使用数据库的
SQLEXPRESS
实例(即使用SQL Server管理工具创建的实例),则只需确保实体框架连接字符串(通常在
web.config
文件中)也使用
(本地)\SQLEXPRESS
作为
数据源=
(或连接字符串中的
server=
)参数这里有一些很好的建议,可以帮助某人。目前,我没有意识到我必须手动从SQL数据库加载和保存数据

我需要创建一个DbSet并将其设置为等于entity表。 乙二醇

因此,我需要将表反弹到一个DbSet,然后将DbSet设置为BindingSource.DataSource

这将允许您访问SQL数据

要保存新记录,请对entity framework对象使用.SaveChanges()方法


我给其他Noob的建议是,当实体框架链接到SQL表时,这并不意味着数据会自动链接。为了更新数据库(和对象),您仍然需要自己加载和保存信息.

这里有一些很好的建议,可以帮助一些人。目前,我没有意识到我必须手动从SQL数据库加载和保存数据

我需要创建一个DbSet并将其设置为等于entity表。 乙二醇

因此,我需要将表反弹到一个DbSet,然后将DbSet设置为BindingSource.DataSource

这将允许您访问SQL数据

要保存新记录,请对entity framework对象使用.SaveChanges()方法


我给其他Noob的建议是,当实体框架链接到SQL表时,这并不意味着数据是自动链接的。为了更新数据库(和对象),您仍然需要自己加载和保存信息。

仔细查看EF模型(DbContext)所使用的连接字符串正在使用。谢谢,伙计,原来这不是我的问题。不过,我确实花了一些时间(如您所建议的)探索连接字符串并找出它的全部含义。否则我不会这么做。再次干杯。欢迎使用StackOverflow。#SoreadytoHelp仔细查看EF模型(DbContext)所使用的连接字符串正在使用。谢谢,伙计,原来这不是我的问题。不过,我确实花了一些时间(如您所建议的)探索连接字符串和工作
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

using System.Data.Entity;
namespace Gui_mockups
{
    public partial class Form1 : Form
{
    Lab_Assistant_backendEntities Database;
    DbSet data;



    public Form1()
    {
        InitializeComponent();
    }

    private void Form1_Load(object sender, EventArgs e)
    {
        Database = new Lab_Assistant_backendEntities();
        data = Database.Sample_Register;
        data.Load();
        sample_RegisterBindingSource.DataSource = data.Local;

    }

    private void sample_RegisterBindingNavigatorSaveItem_Click(object sender, EventArgs e)
    {
        Database.SaveChanges();
    }
}