Tag: 数据库

为什么我会使用静态方法进行数据库访问

所以今天我遇到了这个问题,我找不到一些有意义的解释是否有一些非主观的理由在数据库交互时使用静态方法。 现在我正在开发一个项目,其中所有内容都是通过存储过程完成的,例如我有一些常规方法,例如: public void Delete(int clientID) { //calling store procedure } 要么 public void Save(int clientID) { //calling store procedure } 但我也有: public static Client GetByID(int id) { //calling stored procedure } 要么 public static int AddNew(string firstName, string lastName…) { //calling store procedure } 因为我正在使用.NET大约9个月而且我一直只使用Entity Framework和Repository Pattern我无法回想起任何地方或任何使用静态方法的代码。 不适用于标准CRUD操作,也不适用于与数据库相关的更具体任务。 这是与访问数据库的特定方式有关的东西,是一些可以提供(甚至是非常小的)性能提升的实践,或者它只是开发人员的方法,我不应该在和何时不在我的数据库中使用静态方法相关的方法?

NHibernate:保存瞬态实例时,身份ID如何更新?

如果我使用session-per-transaction并调用: session.SaveOrUpdate(实体) 更正: session.SaveOrUpdateCopy(实体) ..and entity是identity-Id = 0的瞬态实例。 以上行是否会自动更新实体的Id,并使实例持久化? 或者它应该在transaction.Commit上这样做吗? 或者我必须以某种方式明确地编码? 显然,数据库行的Id(新的,因为瞬态)是自动生成的并保存为某个数字,但我在这里谈论的是实际的参数实例。 哪个是业务逻辑实例。 编辑 – 跟进,相关问题。 映射: public class StoreMap : ClassMap { public StoreMap() { Id(x => x.Id).GeneratedBy.Identity(); Map(x => x.Name); HasMany(x => x.Staff) // 1:m .Cascade.All(); HasManyToMany(x => x.Products) // m:m .Cascade.All() .Table(“StoreProduct”); } } public class EmployeeMap : ClassMap { public EmployeeMap() […]

单用户数据库选项

我将使用.NET框架和C#编写Windows应用程序。 应用程序将需要存储将被查询,连接和处理的关系数据。 以前我使用SQL Server完成了这项工作,但这对我现在正在制作的应用程序来说完全是过度的。 在我的应用程序中存储关系数据的最简单,最简单的方法是什么? 如果我在Mac上,我会使用SQLite。 什么是.NET等价物?

entity framework – 如何在种子方法中获取相对文件路径

为什么filePath为null? 有关如何获取相对filePath的任何想法? internal sealed class Configuration : DbMigrationsConfiguration { public Configuration() { // code here is not relevant to question } protected override void Seed(MvcProject.Models.FileDb context) { string filePath = System.Web.HttpContext.Current.Server.MapPath(“~/Content/File.txt”); // read File.txt using filePath and update the database } } 我在ASP .NET MVC项目上设置entity framework时创建的Migrations文件夹中的Configuration.cs文件中有上面的代码 当我在程序包管理器控制台中运行“Update-Database -Verbose”时,我收到一个错误,即filePath为null。 如果我手动设置filePath与文件的绝对URL: string filePath = “C:/Users/User1/My Documents/Visual Studio […]

使用数据库拦截器的entity framework软删除实现不起作用

我使用以下教程实现了一个数据库软删除(一个将条目标记为已删除的布尔标志): http : //www.codeguru.com/csharp/csharp/soft-deleting-entities-cleanly-using-entity-framework- 6- interceptors.html 在我看来,这是一个非常好的实现,因为一旦设置了软删除就可以通过添加[SoftDelete(“IsDeleted”)]注释来应用于模型。 问题到目前为止它无法正常工作。 来源似乎是可靠的,他们甚至发布了他们的解决方案的一个例子: https : //github.com/rakeshbabuparuchuri/EFExpensionPoints 在将软删除应用到我的项目中时,如果我做错了什么,你能看看我的代码吗? 这是模型: [SoftDelete(“IsDeleted”)] public class BC_Instance { public int ID { get; set; } public bool IsDeleted { get; set; } } ApplicationDbContext.cs: namespace bcplatform2.Models { public class ApplicationDbContext : IdentityDbContext { public ApplicationDbContext() : base(“DefaultConnection”, throwIfV1Schema: false) { } // Add a […]

期望参数’@ID’,没有提供?

我发送ID作为outparameter,但它给出了错误 System.Data.SqlClient.SqlException:过程或函数’usp_ClientHistoryItem’需要参数’@ID’,这是未提供的。 码 using (SqlCommand cmd = new SqlCommand(“dbo.usp_ClientHistoryItem”, conn)) { SqlParameter parameterID = new SqlParameter(“@ID”, oReservation.Id); parameterID.Direction = ParameterDirection.Output; cmd.Parameters.Add(parameterID); cmd.Parameters.Add(new SqlParameter(“@PhoneNo”, oReservation.ClientPhone)); cmd.Parameters.Add(new SqlParameter(“@UserId”, oReservation.UserID)); cmd.Parameters.Add(new SqlParameter(“@Description”, oReservation.Description)); cmd.Parameters.Add(new SqlParameter(“@TestId”, oReservation.TestId)); cmd.Parameters.Add(new SqlParameter(“@StartDate”, oReservation.StartDate)); cmd.ExecuteNonQuery(); returnValue = Convert.ToInt32(cmd.Parameters[“@ID”].Value); return returnValue; }

.Net:如何创建独立于供应商的数据集,Tableadapters,绑定(DB在运行时决定)

我有一个C#Windows窗体应用程序,其原型是在SQL Server(强类型数据集)上创建的。 在最终版本中,应用程序必须能够在SQL Server,MySQL或Oracle上运行。 现在我想知道哪些部件(如果有的话)可以从原型中重复使用。 1.数据集(打字)? 2. TableAdapters? (可能不是,它们包含SQL Server特定的语法)3。绑定到DataGridViews 最重要的是,如果我们需要重新实现所有这些,是否有办法在设计时执行此操作? 或者,1。我们是否需要以编程方式创建无类型数据集? 2.我们需要以编程方式创建其数据适配器(或表适配器)吗? 如果是,那两个中的哪一个? 3.我们是否需要以编程方式创建其对接口的datagridviews的绑定? 也许是无关紧要的:如果我们从现有的db模式创建一个实体模型(AFAIK,它提供db独立性),我们可以用某种方式创建绑定到我们的datagridviews吗? 谢谢! 那么,为了保留我们的Bindings和dataGridViews,以及我们实现的一些额外逻辑,我们是否应该丢弃所有生成的TableAdapter并手动编写它们? 如果我们扔掉它们,我们应该使用DataAdapters吗? 这是一种“按书”的方法吗? 有没有人做过这样的事情? 更一般地说,如果您需要创建一个Forms应用程序以在多个dbs中工作,您会这样做:A。使用无类型数据集,dataadapters / tableadapters和手工创建的绑定B.以某种方式生成独立于供应商的数据集和dataadapters / tableadapters(如何?)并在设计时通过VS gui C绑定它们。其他方式??? 更新: 那么,为了保留我们的Bindings和dataGridViews,以及我们实现的一些额外逻辑,我们是否应该丢弃所有生成的TableAdapter并手动编写它们? 如果我们扔掉它们,我们应该使用DataAdapters吗? 这是一种“按书”的方法吗? 有没有人做过这样的事情? 更一般地说,如果您需要创建一个Forms应用程序以在多个dbs中工作,您会这样做:A。使用无类型数据集,dataadapters / tableadapters和手工创建的绑定B.以某种方式生成独立于供应商的数据集和dataadapters / tableadapters(如何?)并在设计时通过VS gui C绑定它们。其他方式???

如何更改数据库 – Entity Framework使用的架构(mysql数据库)?

我在项目中使用EntityFramework连接到Mysql数据库。 提供者是Devart Dot.connect。 此应用程序需要使用用户在运行时提供的连接参数连接到数据库。 这当然包括Mysql数据库名称。 我使用EntityConnectionStringBuiler和EntityConnection类来构建和存储自定义连接参数。 问题是即使使用这样的给定参数,应用程序也总是连接到使用visual studio向导设计EntityModel时命名的数据库。 非常奇怪的是,当调试和检查ObjectContext的状态时,自定义连接参数被正确使用……这让我很生气!!!!! 任何线索?

模拟entity framework数据库

我正在使用Entity Framework 4+。 是否可以使用一些随机数据从架构中自动创建一些MOCK数据库? 整合,放入整体,字符串,放置一些GUID或其他…… 它可以帮助我调试我的应用程序很多。 谢谢詹姆斯

使用for循环将多个记录插入SQL Server数据库

我正在使用C#编写Windows窗体项目。 我试图从数组中将多个记录插入SQL Server数据库。 进入第一行后,我得到一个例外 @UserID已经被声明了。 变量名在查询批处理或存储过程中必须是唯一的。 数据库中的主键没有问题,因为UserID不是主键。 这就是我想要做的。 public static void featuresentry() { SqlConnection connection = new SqlConnection(HandVeinPattern.Properties.Settings.Default.HandVeinPatternConnectionString); SqlCommand command = new SqlCommand(); connection.Open(); try { command = connection.CreateCommand(); for (int i = 0; i < Details.modelKeyPoints.Size; i++) { command.CommandText = "INSERT INTO FEATURES(UserID, Angle, ClassID, Octave, PointX, PointY, Response, Size) VALUES(@UserID, @Angle, @ClassID, @Octave, […]