ADO.NET 客户端计算机上的实体数据库应用程序
本文关键字:实体 数据库 应用程序 NET 客户端 计算机 ADO | 更新日期: 2023-09-27 18:30:32
所以我目前正在学习我的 C# 认证考试,我正在研究数据的使用,这涉及 ADO.NET 实体并使用它们与数据库(嵌入在应用程序中)及其创建的模型进行连接和通信。我根据教科书中的示例创建了一个相对小而简单的应用程序。
但是,我突然想到,如果我尝试将具有实体框架使用的应用程序部署到客户端计算机,会发生什么情况(以防万一,我将来使用它并且需要知道如何使其正常工作)。令我惊讶的是,它崩溃了,我有一个数据网格,它在首次加载应用程序时绑定数据库中的数据。所以我猜还有一些额外的工作要做,而不仅仅是压缩文件或进行一键式部署。
我相信我正在测试的计算机具有适当的.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;
}
}
}
}
}
所以我很确定我在这里错过了一些基本要求,因为它在另一台计算机上打开时会崩溃。即使使用我认为下载并安装应用程序的任何要求的一键式部署。
如果有人能帮助我理解我错过了什么或理解不正确,那就太好了,谢谢
因为我还不能发表评论..我会发布这个..
应确保运行该应用程序的其他计算机有权访问在数据库实体上配置的连接字符串中声明的数据库。