为什么不'我们有一个简单的数据持久化接口吗?

状态
不接受进一步答复。

安德鲁布

成员
已加入
2017年6月6日
留言内容
15
编程经验
10+
我怀疑我们会这样做,您到底在寻找什么?

将对象的属性保存到表或存储过程的实用程序。没有配置。

数据库.Store(客户)
数据库.Load(客户)
数据库.Delete(客户)

它应该从App.config / Web.config中读取数据库连接。
存储过程的表或名称应该是Customer类的属性。
 
已加入
2011年4月23日
留言内容
177
地点
密歇根州兰辛;美国
编程经验
10+
将对象的属性保存到表或存储过程的实用程序。没有配置。

数据库.Store(客户)
数据库.Load(客户)
数据库.Delete(客户)

它应该从App.config / Web.config中读取数据库连接。
存储过程的表或名称应该是Customer类的属性。
您是说要序列化对象,然后将数据存储在数据库的VarBinary字段中?
 
已加入
2011年4月23日
留言内容
177
地点
密歇根州兰辛;美国
编程经验
10+
否。每个属性都映射到一个SP参数或一个表列。
因此,然后将DataTable和所有控件绑定到表中的字段,您的.Net代码是否只是从该DataTable中进行加载/插入/更新/删除并将更改反映回数据库?
 

安德鲁布

成员
已加入
2017年6月6日
留言内容
15
编程经验
10+
它将使用属性,方法和事件加载Customer对象。您不需要DataTable或DataReader。

客户c =新客户();
c.ID = 1;
数据库.Load(c);
 
已加入
2011年4月23日
留言内容
177
地点
密歇根州兰辛;美国
编程经验
10+
我猜想您可能不熟悉他们在2005 / .Net 2.0中添加的DataSet(视觉设计器附带),它允许您在类似的庄园中进行操作。
要使用它,请将一个新的DataSet文件添加到您的解决方案中(右键单击该项目,转到“添加”,选择"New Item",然后点击左侧的数据,然后选择"DataSet",您就有机会给.xsd文件一个有意义的名称),然后打开DataSet文件,右键单击它和一个TableAdapter(它将在向导中为您创建一个DataTable),第一次这样做,您将需要通过选择数据源来指定connetionstring。完成所有操作后,选择要引入的表,它就会有一个查询设计器,以便您可以执行诸如联接表之类的操作,完成后就可以将查询附加到TableAdapter,这里是更多信息: 在Visual Studio中使用数据集

另请注意,每个"query"您在TableAdapter上进行创建,您只需简单地调用.Net代码即可进行数据库交互(包括传递参数),因此您可以制作一个CustomerTableAdapter并使用Fill()方法之一来传递CustomerID值和中提琴,您有特定的行(或特定的数据集)。
您可以对插入,更新,&可以从代码中的同一TableAdapter对象调用的删除。
 

安德鲁布

成员
已加入
2017年6月6日
留言内容
15
编程经验
10+
您不需要数据集。这不是从数据库到应用程序的表复制。

它将对象属性映射到表列或SP参数。没有配置:

客户c =新客户();
c.Name ='Alyson';
数据库.Store(c);
 
已加入
2011年4月23日
留言内容
177
地点
密歇根州兰辛;美国
编程经验
10+
您不需要数据集。这不是从数据库到应用程序的表复制。

它将对象属性映射到表列或SP参数。没有配置:

客户c =新客户();
c.Name ='Alyson';
数据库.Store(c);
您基本上是在谈论要以您的名义使用DataSet所做的事情"Alyson"例如,您将在TableAdapter上具有一个函数,可以在其中传递一个名称,并且它将在数据库上执行“插入”,将Alyson设置为“名称”列中的数据,并返回新记录的CustomerID。
如果您想将DataSet提升到一个新的级别,只需创建一个新的Customer,请将Name设置为"Alyson"并调用Store()方法,然后需要创建一个包装器,在这种情况下,您可以在包装器函数简单调用的解决方案中使用DataSet对象,也可以创建SqlConnection,SqlDataAdapter等数据库是否会自称。
 

安德鲁布

成员
已加入
2017年6月6日
留言内容
15
编程经验
10+
摆脱所有这些东西。这些对象都不是必需的。总代码:

CustomerList列表= new CustomerList();
list.ZipCode ='33810';
数据库.Load(列表,"ByZipCode");

就是这么简单。
 

约翰·H

C#论坛主持人
工作人员
已加入
2011年4月23日
留言内容
1,050
地点
挪威
编程经验
10+
将对象的属性保存到表或存储过程的实用程序。没有配置。

数据库.Store(客户)
数据库.Load(客户)
数据库.Delete(客户)

它应该从App.config / Web.config中读取数据库连接。
存储过程的表或名称应该是Customer类的属性。
这也非常类似于Entity Framework,例如 实体框架(EF)文档
从介绍示例之一:
        using (var db = new BloggingContext()) 
        { 
            // Create and save a new Blog 
            Console.Write("Enter a name for a new Blog: "); 
            var name = Console.ReadLine(); 
 
            var blog = new Blog { Name = name }; 
            db.Blogs.Add(blog); 
            db.SaveChanges();
 

安德鲁布

成员
已加入
2017年6月6日
留言内容
15
编程经验
10+
我认为这一切都有。

SQL脚本创建5-6个SP和一个SQL函数。

使用方法:
1.使用System.Persistence;
2.连接字符串称为"Persistence" in Web/App.config
3.类的属性:Persistable [table,primaryKey]

而已。
 

附件

  • 坚持不懈.zip
    33.3 KB · Views: 44
由主持人最后编辑:
已加入
2011年4月23日
留言内容
177
地点
密歇根州兰辛;美国
编程经验
10+
15 years ago. 2001.
所以不是.Net?
我认为这一切都有。

SQL脚本创建5-6个SP和一个SQL函数。

使用方法:
1.使用System.Persistence;
2.连接字符串称为"Persistence" in Web/App.config
3.类的属性:Persistable [table,primaryKey]

而已。
你声称"No Config"和#2从字面上看您是否使用配置,它是如何工作的?

关于提到的其他方法(数据集,实体框架)的好处是,它们支持您可以连接的任何数据源,但是为了使这个问题更简单,您是否使用Access数据库,Oracle,&MySQL的?由于Access不支持SP,因此希望您可以解决此问题,并且只有两个最新版本的MySql支持SP(尚无功能)。
 

安德鲁布

成员
已加入
2017年6月6日
留言内容
15
编程经验
10+
它最初是用Java编写的,先移植到VB6,再移植到.NET。它是为SQL Server设计的。 Oracle插件应该很简单。它支持直接SQL,因此Access和MySql应该可以工作,但是我没有为Access设计它。

它是为认真开发企业应用程序而设计的。
 
Last edited:
状态
不接受进一步答复。
最佳 底部