MicrosoftLinqtoSQL、EntityFramework(EF)、nHibernate等都提出将ORMS作为下一代DataMapping技术,并号称轻量、快速、简单。例如这篇刚刚发表在VS杂志上的文章:http://visualstudiomagazine.com/features/article.aspx?editorialsid=2583谁对在他们的项目中实现这些技术感到兴奋?这些技术的创新之处在哪里,使它们比前代产品更出色? 最佳答案 多年来,我在数百个应用程序中编写过数据访问层、持久化组件,甚至我自己的ORM(我
我在数据库中有一个简单的父子表CREATETABLE[Parent]([Id][int]IDENTITY(1,1)NOTNULL,[Name][nvarchar](256)NOTNULL)ALTERTABLE[Parent]ADDCONSTRAINT[PK_Parent_Id]PRIMARYKEY([Id])CREATETABLE[Child]([Id][int]IDENTITY(1,1)NOTNULL,[ParentId][int]NOTNULL,[Name][nvarchar](256)NOTNULL)ALTERTABLE[Child]ADDCONSTRAINT[PK_Child_
使用EntityFramework,是否可以向对象类添加方法?例如,我有一个CLIENT映射,我想创建一个“getAgeFromBirhDate”方法。 最佳答案 是的。这是可能的。EntityFramework生成PartialClasses.这意味着您可以创建另一个文件,其中包含部分类定义的另一部分(使用您的其他方法),一切都会正常进行。 关于c#-使用EntityFramework向模型添加方法,我们在StackOverflow上找到一个类似的问题: h
我正在启动一个用C#编写的相当大规模的开源服务器项目,该项目同时针对MS.NET和Mono平台。然而,我意识到Mono对LINQtoSQL的支持有限,并且根本不支持EntityFramework。我考虑过的两个ORM是NHibernate和SubSonic。但是,我不知道它们将如何在Mono2.8上运行(这是我的目标)。那么,任何人都可以推荐一个可以在Mono2.8上运行的ORM,或者碰巧在Mono下成功地使用了上述一些ORM吗?提前致谢。 最佳答案 单声道支持:NHibernate-免费、开源、经过验证和测试。易于配置。我个人的最
我刚刚通过订阅赢得了1个TelerikPremiumCollectionfor.NETDeveloper(幸运的我!)并且想知道OpenAccessORM是否值得学习?有没有人放弃他们的开源变体,现在改用TelerikORM工具?使用TelerikORM工具而不是开源变体有什么好处吗?有什么想法建议吗?顺便说一句,我迫不及待地想开始使用他们的RadControlsforASP.NETAJAX!! 最佳答案 5年多以来,我一直是telerik的满意客户。我只在一个解决方案中使用了他们的ORM,从未使用过开源ORM。扔掉现有的?不-如果
我对.NET比较陌生,并且使用Linq2Sql已经快一年了,但它缺少我现在正在寻找的一些功能。我将开始一个新项目,我想在其中使用具有以下特征的ORM:它必须非常高效,我不想处理访问层来从数据库中保存或检索对象,但它应该允许我在实际将其提交到数据库之前轻松调整任何对象;它还应该允许我轻松地使用不断变化的数据库模式它应该允许我扩展从数据库映射的对象,例如向它们添加虚拟属性(虚拟列到表)它必须(至少几乎)与数据库无关,它应该允许我以透明的方式使用不同的数据库它必须没有那么多配置或必须基于约定才能使其工作它应该允许我使用Linq那么,你知道我可以使用的任何ORM吗?感谢您的帮助。编辑我知道一个
我想到的一个优势是,如果您使用Poco类进行Orm映射,您可以轻松地从一个ORM切换到另一个,如果两者都支持Poco。拥有不支持Poco的ORM,例如映射是使用DataObjects.NetOrm等属性完成的,对我来说不是问题,Poco支持的Orms及其生成的代理实体也是如此,您必须意识到实体实际上是绑定(bind)到某些上下文/session的DAO对象,例如序列化是一个问题,等等。 最佳答案 POCO一切都与松散耦合和可测试性有关。因此,当您进行POCO时,您可以单独测试领域模型(例如,如果您正在进行DDD)。您不必担心它是如何
我们在我们的业务解决方案中使用EF5.0作为我们的ORM的选择,它以n层方式构建,所有内容都解耦,并且使用ninject有一个很好的组合根。最近,我们一直在构建一个在底层使用分区的数据库,我们在DATE列上有一些重要的索引。列在SqlServer2008上正确声明。我们还在EF映射中添加了正确的数据类型,使用HasColumnType("Date")指令。仍然,当通过LinqtoEntities查询表时,我们过滤日期的参数是DateTime2类型的,甚至列都被转换为DateTime2查询,以便类型与参数匹配。这种行为有几个问题。首先,如果我告诉EF引擎数据库中的列是DATE,为什么要将
我正在试验dapper。我有一个类,它有一个枚举,值作为字符串存储在数据库中。这适用于使用GenericEnumMapper的FluentNHibernate是否可以用Dapper做同样的事情? 最佳答案 目前还没有内置,这里有一个建议的解决方案:http://code.google.com/p/dapper-dot-net/issues/detail?id=24我们尚未决定。我喜欢可扩展类型转换器的想法目前最简洁的方法是定义影子属性,例如:classMyType{publicMyEnumMyEnum{get;privateset;
在我的项目中,我使用以下方法从数据库中查询数据:使用可以返回任何类型且不绑定(bind)到一种类型的通用存储库,即IRepository.Get而不是IRepository.Get.NHibernatesISession是此类存储库的示例。在IQueryable上使用扩展方法具有特定的T封装重复查询,例如publicstaticIQueryableByInvoiceType(thisIQueryableq,InvoiceTypeinvoiceType){returnq.Where(x=>x.InvoiceType==invoiceType);}用法是这样的:varresult=sess