使用EF4.0 / LINQ对转动的3NF数据进行建模

时间:2011-02-14 10:46:04

标签: c# linq entity-framework-4

我目前正在开发一个几乎所有业务逻辑都封装在数据库(SQL Server)中的项目,现在需要完全删除数据库依赖项。

我在数据库中有一些标准化数据,格式如下:

记录[RecordID,RecordTypeID,OwnerID,RecordValue] RecordType [RecordTypeID,Description]

在RecordTypeID之间使用外键。我想要做的是强力输入记录集;数据库中存在PIVOT数据的查询,因此我将记录集设置为:

TypedRecord [RecordType1Value,RecordType2Value,RecordType3Value ...]

但显然不能在这个项目中使用PIVOT命令。任何人都可以提出适当的策略来解决这个问题吗?我们将使用.NET 4.0(包括EF4.0),因此linq解决方案没问题。

1 个答案:

答案 0 :(得分:0)

删除“数据库依赖”是个好主意,但显然你有大量面向数据的应用程序,所以你应该考虑一些方面。即使使用EF,使用SQL进行高级查询仍然很有用 - PIVOT就是这样的例子。不要删除这些查询,否则您必须直接在应用程序的内存中计算数据透视数据=将所有相关数据从数据库传输到应用程序并计算聚合以进行数据透视。

EF4提供了几种调用传统SQL的方法。要走的路可能是将查询封装到存储过程中并使用它们。