我有这个项目,我想从常规的ADO.NET代码转向更高效,更易理解,更精简和更精简的OR / M系统。我有以下方案当前有效,但也必须使用OR / M:
订单:
文件:
当我创建新订单时,我附上了一份文件。本文档提供了一系列二进制数据(PDF文件),当我保存它时,它将二进制内容写入定义的路径。这一切都有效,甚至是交易。
现在,是否可以使用OR / M复制相同的行为?很明显,我必须在生成的OR / M代码之上手动编写,但它在Linq-to-SQL或nHibernate中是否可行?你会推荐哪一个?我怎么能把它连接起来呢?
我的应用程序中还有一些其他不太缺省的行为,我认为这有点难以复制。
牌:
调制解调器:
订单:
OrderLines:
OrderLineContents:
我在这里要做的是将特定卡或特定调制解调器连接到OrderLine。例如,通过在identifier_name和id 1中插入'Modem'。这个系统目前适用于ADO.NET,但我又想知道它在OR / M中是否可以轻松复制。我已经读过L2S只支持单表继承,我认为这显然是某种多态的多表'事物'。
对此的任何帮助将非常感激:)我寻求一个可以同时执行这两种情况的系统,或者如果没有其他选择,可能会将第二种情况更改为稍微不同的东西。
答案 0 :(得分:0)
我肯定会推荐NHibernate。你提到的所有东西都是可能的。 第一种情况非常简单:
实例化实体并在其上设置数据。将文件保存到磁盘。保留数据库中的实体。
包装整个我尝试捕获的东西,以解决需要回滚事务或删除损坏的文件的异常。
对于“identifier_name”部分,您可以使用单表和连接表类型的继承映射。但是你的类应该共享一个共同的基类来实现。另一种方法 - 与您当前的方法相匹配,但我不确定我会在您的情况下推荐 - 使用NHibernate支持的“任何”映射。
/导演Asger