我不得不为我的大学开发系统,其中包括跟踪几乎所有的数据(讲座,讲师,助教,学生等)。 我的数据库有30张桌子,它很漂亮复杂。 我用EF和linq来解决连接数据库并从中查询。 但是我越走越多,我的查询变得越来越难写,更不用说维护。 以下是一个查询的示例:http://pastebin.com/Za1cYMPaLinq,实体框架及其用法
这是非常混乱,你可以看到。
那么,我滥用LINQ(LINQ可以解决这个问题,但以不同的方式)或LINQ只是不是像这样的更复杂的系统?
这是一般性问题,不是解决特定问题的方法之一。
不知道我在这里遵循你的逻辑。我认为复杂性来自数据库设计。将这些查询中的一部分移入视图(或存储过程)可以帮助简化存储库层。另外,我不确定我是否同意你的假设,即使用Repository和Specification模式可以降低复杂性并提高可维护性。如果有的话,它会将这些担忧转移到架构的不同层面。 – Jeff 2011-06-06 20:56:56
@Jeff,如果他的老板决定将数据库移动到Oracle或文档数据库,会发生什么?然后,所有内容都需要重新编码,因为业务逻辑已被移至SQL数据库,该数据库特定于该特定实施。你是正确的,因为它把问题转移到了不同的层次,但是由于OP讨论LINQ,我不得不假定他是一个交易程序员,而不是数据库管理员(是的,这些常常是重叠的,但并不总是)。在这种情况下,似乎维护代码比数据库更容易。 – smartcaveman 2011-06-06 20:59:20
那个论点是完整的b.s.除非你为一家软件公司工作。我一直存在很长时间才知道决策并非如此。让自己远离未来可能发生或可能不会发生的事情,只会增加复杂性。 – Jeff 2011-06-06 21:03:05