我们有一个客户非常大的表超过列(我知道有人做的!)使用EF代码第一次
许多列实际上外键与其他表数据库选择特定的列。
我们也有要求急切加载一些相关的表格。
Linq to SQL或Dynamic Linq有什么方法可以指定从数据库中检索哪些列? 我找的,实际上,在生成SQL语句这种影响一个LINQ声明:
SELECT Id, Name FROM Book
当我们运行由EF生成的络查询,SQL Server将引发一个错误,你已经达到的最大列数可以在查询中选择!
任何帮助非常感谢!
恰好是这种情况,表中有500列,是自参考我们的工具会自动加载心切的第一级关系,这击中上可以查询的列数的SQL限制。
我希望我可以设置到相关的实体,例如Id和名称(其在UI用来查看记录到用户)
我想另一种选择是仅负载有限列控制什么FK列应该急切加载。但是,对于具有二进制或ntext列的表而言,这仍然存在问题,您可能不希望一直加载该列。
有没有办法将多个模型(实体)绑定到Code First中的同一个表上?我们试图这样做,我认为这一努力失败了。
我希望有更可靠的方式来指定列。在许多情况下,我们的MVC应用程序为多个模型共享,我们使用动态LINQ来为不同的表执行相同的查询。 – sam360 2012-07-17 19:54:46
动态linq也应该能够指定投影。 EF是用于处理实体的工具 - 实体就是您已经映射的实体=如果您已将500列映射到实体,则您的查询无投影将始终返回500列+所有已加载关系的列。 – 2012-07-17 20:23:55
是的,情况就是这样,表格有500列,并且自动引用我们的工具,自动加载第一级关系,这对于可以查询的列数有SQL限制。 我希望我可以设置为只加载相关实体的有限列,如Id和Name(用于在UI中查看记录给用户) 我想另一个选项是控制哪些列应该急于加载。然而,对于具有二进制或ntext列的表,您可能不希望加载所有联系,这仍然存在问题。 – sam360 2012-07-17 20:59:06