Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.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
Sql server 使用C语言中的大量存储过程#_Sql Server_Entity Framework_Stored Procedures_Orm_Petapoco - Fatal编程技术网

Sql server 使用C语言中的大量存储过程#

Sql server 使用C语言中的大量存储过程#,sql-server,entity-framework,stored-procedures,orm,petapoco,Sql Server,Entity Framework,Stored Procedures,Orm,Petapoco,我正在看一个项目,其中客户有一个遗留数据库(MS SQL)和许多SP(大约250个)。我需要能够从我的C#项目中与所有这些人交谈,但我试图找到一种好方法来尽可能多地生成管道 我不确定是否应该使用ORM或某种代码生成工具?利与弊?我已经研究过实体框架,它能够将复杂类型用作强类型模型,但我更愿意使用poco模型并以某种方式填充对象。看来像ie.PetaPoco这样的微型生物可能是一条出路 任何人有任何关于这个问题的提示和想法可以分享吗?您需要一个能够反转存储过程映射的ORM,如 Telerik Op

我正在看一个项目,其中客户有一个遗留数据库(MS SQL)和许多SP(大约250个)。我需要能够从我的C#项目中与所有这些人交谈,但我试图找到一种好方法来尽可能多地生成管道

我不确定是否应该使用ORM或某种代码生成工具?利与弊?我已经研究过实体框架,它能够将复杂类型用作强类型模型,但我更愿意使用poco模型并以某种方式填充对象。看来像ie.PetaPoco这样的微型生物可能是一条出路


任何人有任何关于这个问题的提示和想法可以分享吗?

您需要一个能够反转存储过程映射的ORM,如

Telerik OpenAccess ORM提供了导入和使用存储 数据库中已存在的过程。它们可以映射到 静态方法或内部用于替换默认写入的 操作和实现自定义逻辑

现在是免费的。我猜他们意识到,当有这么多像nHibernate这样的免费替代品时,他们无法销售ORM


如果您正在寻找可以映射存储过程的轻量级替代方案,请尝试Sam Saffron的Dapper。整洁是导致堆栈溢出的原因



PetaPoco可以很好地处理存储的进程

如果你想的话,你可以用T4模板编写一个存储过程映射器

使用PetaPoco获得的模板(至少在我上次查看时)不会映射存储的进程

您可能可以编辑此处使用的模板:


刚刚看到你对petapoco存储过程的调用方式的评论,这是真的。。。我只在MSSQL中使用过它,所以可能是我的站点以外的地方。

大多数ORM都有一些方法可以调用存储过程。谢谢Robert,我想知道是否有任何方法可以摆脱管道(写查询等),哪种ORM做得最好?我更喜欢一个轻量级的解决方案。EF感觉有点重。你已经提到了PetaPoco。Yepp PetaPoco很棒,我用它来做常规ORM的东西,但它缺少SPs部分的抽象(你必须写“Execute SpName”作为一个查询,将解决方案与SQL Server(MySQL即使用CALL SpName)联系起来罗伯特,你有这方面的经验吗?你必须创建一个有模拟装置的项目吗?你的“方法”是什么?你测试过它吗?看起来它和EF一样重,并且提供了相同的功能?它应该比EF性能更好。无论如何,寻找一个可以映射现有存储过程的ORM。我不认为调用功能必须抽象,但它有一个缺点,另一方面,我认为我的解决方案ion将改变数据存储解决方案,但如果真的发生,重写此应用程序的数据层将是工作的0.05%。