Tag: orm

orm和ADO.net有什么区别?

我正在读一本书,它说:“如果你通过使用ADO.NET访问你的数据库来创建你自己的数据访问层,那么无论数据模式是否存在,你都会受到的影响微乎其微。但是如果你使用的是O. / RM,您的灵活性将受到您使用的工具的限制“。 ADO.NET和任何其他ORM之间的主要区别是什么?

Dapper是否支持SQL 2008表值参数2?

我知道dapper可以支持TVF,但是你如何与TVF一起发送额外的参数(不将它添加到IntDynamicParam类)? 请参阅Tests.cs中的以下示例,我已修改为添加额外参数: connection.Execute(“CREATE TYPE int_list_type AS TABLE (n int NOT NULL PRIMARY KEY)”); connection.Execute(“CREATE PROC get_ints @x int, @ints int_list_type READONLY AS select * from @ints”); 我尝试了以下但是遇到了错误(从对象类型SqlMapper.Tests + IntDynamicParam到已知的托管提供者本机类型没有映射。): var p = new DynamicParameters(); p.Add(“x”, 4); p.Add(“ints”,new IntDynamicParam(new int[] { 1, 2, 3 })); var nums = connection.Query(“get_ints”, p).ToList(); 谢谢Sam的回复,但问题有点不同。 我想知道如何传入另一个变量和元组。 请参阅下面的修改后的SP: CREATE TYPE int_tuple_list_type […]

C#数据库访问:DBNull与null

我们在这里使用自己的ORM,并为所有db表提供强类型包装器。 我们还允许执行弱类型的临时SQL,但这些查询仍然通过相同的类来从数据读取器中获取值。 在调整该类以使用Oracle时,我们遇到了一个有趣的问题。 使用DBNull.Value或null是否更好? 使用DBNull.Value有什么好处吗? 使用null似乎更“正确”,因为我们已经将自己从数据库世界中分离出来,但是有一些含义(例如,当值为null时,你不能盲目地使用ToString() )所以它绝对是我们需要的东西做出有意识的决定。

如何在Dapper中使用’Where In’

我一直试图在Dapper中使用带有WHERE IN子句的IEnumerable一段时间失败。 在文档中,它确实支持在WHERE IN使用IEnumerable ,但我甚至无法使其工作。 Dapper allow you to pass in IEnumerable and will automatically parameterize your query. 我一直收到的错误消息是Sql语法错误。 Incorrect syntax near ‘,’. 我已经整理了一些测试代码,希望能够展示我想要实现的目标。 string connString = “Server=*.*.*.*;Database=*;User Id=*;Password=*;”; string sqlStringIn = @”SELECT StringText FROM (SELECT 1 ID, ‘A’ StringID, ‘This is a test’ StringText UNION SELECT 2 ID, ‘B’ StringID, ‘Another test’ StringText UNION […]

使用Dapper将字符串映射到guid

我正在使用Dapper来敲除一些需要访问PostgreSQL数据库的负载测试工具。 此特定版本的PostgreSQL本身不支持GUID,因此GUID值存储为32个字符串。 使用someGuid.ToString(“N”)将值转换为字符串,可以使用new Guid(stringValueFromColumn)转换回Guid。 我的问题是如何让Dapper读取字符串并将它们转换回Guids? 我尝试修改DbType映射,但这不起作用。

Telerik openaccess ORM值得学习吗?

我刚刚赢得了1个Telerik Premium Collection for .NET Developer的订阅(幸运的是我!),并想知道OpenAccess ORM是否值得学习? 有没有人扔掉他们的开源变种,现在正在使用Telerik ORM工具? 使用Telerik ORM工具而不是开源变体有什么好处吗? 有什么想法吗? 顺便说一句,我迫不及待地开始使用他们的RadControls进行ASP.NET AJAX!

使用NoSQL API的ORM是多余的吗?

使用MongoDB(我假设其他NoSQL数据库API值得他们的盐)查询数据库的方式比SQL简单得多。 没有繁琐的SQL查询可以生成等等。 例如,从mongodb-csharp获取: using MongoDB.Driver; Mongo db = new Mongo(); db.Connect(); //Connect to localhost on the default port. Document query = new Document(); query[“field1”] = 10; Document result = db[“tests”][“reads”].FindOne(query); db.Disconnect(); ORM怎么能简化呢? 在一个体面的NoSQL API之上是否需要ORM或其他“数据库抽象设备”?

亚音速ORM体验

我正在寻找一个重要项目的新ORM,我习惯使用ActiveRecord进行nHibernate,而且我已经对EF4,性能和崩溃的GUI有了非常糟糕的体验。 所以在网上搜索我找到了Subsonic,我喜欢我在文档中看到的内容。 所以,我想知道是否有人已经使用过Subsonic并且体验是否良好。

比较和对比来自Telerik的NHibernate和OpenAccess

您是否使用过Telerik的OpenAccess ORM ? 它与NHibernate相比如何? 我什么时候应该考虑在NHibernate上使用它?

没有ORM的存储库模式

我在不使用ORM的.NET C#应用程序中使用存储库模式。 但是,我遇到的问题是如何填充实体的一对多列表属性。 例如,如果客户有一个订单列表,即如果Customer类有一个名为Orders的List属性,而我的存储库有一个名为GetCustomerById的方法,那么? 我应该在GetCustomerById方法中加载Orders列表吗? 如果订单本身有另一个列表属性等等怎么办? 如果我想做懒加载怎么办? 我在哪里将代码加载到客户的Orders属性? 在Orders属性中获取{} accessor? 但那时我必须将存储库注入域实体? 我不认为这是正确的解决方案。 这也引发了诸如变更跟踪,删除等function的问题? 所以我认为最终结果是我可以在没有ORM的情况下进行DDD吗? 但是现在我只对我的域实体中的延迟加载List属性感兴趣? 任何的想法? 纳比勒 我假设对于没有在域驱动设计中使用ORM的人来说,这是一个非常常见的问题? 任何的想法?