客户端计算机上的ADO.NET实体 - 数据库应用程序

时间:2016-01-15 02:17:21

标签: c# .net entity-framework deployment

所以我目前正在攻读C#认证考试,我正在研究数据的使用,这涉及到ADO.NET实体并使用它们来连接数据库并与之通信(嵌入在数据库中)应用程序)及其创建的模型。我已根据教科书中的示例创建了一个相对较小且简单的应用程序。

然而,在我看来,如果我尝试将具有Entity Framework用途的部署和应用程序部署到客户端计算机,会发生什么情况(在案例中,我将来使用它并需要知道如何使其工作正如它应该)。令我惊讶的是它崩溃了,我有一个数据网格,它在首次加载应用程序时绑定数据库中的数据。因此,我猜测还有一些额外的工作要做,而不仅仅是压缩文件或进行一键式部署。

我相信我正在测试的计算机上有适当的.net框架..(我现在正在检查这个)..但如果不是这个,请随意给你的输入^。^

下面我已经包含了我的示例测试应用程序的代码

员工类:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace WpfApplication1
{
   class Employee
   {
       public int ID { get; set; }
       public string FirstName { get; set; }
       public string LastName { get; set; }
       public string City { get; set; }
       public string State { get; set; }
   }
}

主窗口:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

namespace WpfApplication1
{
public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();
        DoStuff();
    }

    public void DoStuff()
    {
        List<Employee> employees = new List<Employee>()
        {
            new Employee()
            {
                ID = 1,
                FirstName = "John",
                LastName = "Smith",
                City = "Havertown",
                State = "PA"
            },
            new Employee()
            {
                ID = 2,
                FirstName = "Jane",
                LastName = "Doe",
                City = "Ewing",
                State = "NJ"
            },
            new Employee()
            {
                ID = 3,
                FirstName = "Jack",
                LastName = "Jones",
                City = "Fort Washington",
                State = "PA"
            }
        };

        var employeesByState = from e in employees
                                group e by e.State;

        using (DatabaseEntities db = new DatabaseEntities())
        {
            foreach (var employeeGroup in employeesByState)
            {
                foreach (var employee in employeeGroup)
                {
                    Stuff st = new Stuff()
                    {
                        ID = employee.ID,
                        FirstName = employee.FirstName,
                        LastName = employee.LastName,
                    };
                    db.Stuffs.Add(st);
                    db.SaveChanges();

                    var result = (from c in db.Stuffs
                                 select c).ToList();
                    dtgResults.ItemsSource = result;
                }
            }
        }
    }
}

所以我非常确定我在这里缺少一些基本要求,因为它在另一台计算机上打开时会崩溃。即使使用我认为下载的一键式部署并安装应用程序的任何要求。

如果有人能帮助我理解我错过了什么或者理解错误,那就太棒了,谢谢

1 个答案:

答案 0 :(得分:0)

由于我无法发表评论......我会发布这个......

您应确保运行该应用程序的其他计算机可以访问DatabaseEntities上配置的连接字符串中指定的数据库。