0

我知道EF4不支持用户定义类型(还)。我需要编写一个查询,该查询接受<product_code, quantity>对的列表,并根据quantity为每个product_code返回一个带有product_codeprice的记录集。 EF4模型化的最佳选择是什么?在数据库中计算得到价格是相当复杂的,并且有很多产品,这意味着大部分操作应该发生在服务器端。 (例如,我无法首先从服务器获取完整的价格列表,然后过滤到我需要的客户端产品,也无法将数量应用到客户端的计算上,必须将其传递到服务器并进行处理那里)。任何想法都欢迎。UDT作为EF4查询中的参数

回答

2

我想你主要回答你的问题。计算必须在数据库服务器上完成,而您只想获得结果,不是吗?如果您使用的是SQL Server 2008,则可以创建接受table valued parameter的存储过程。现在您可以拨打此程序directly using ADO.NET或使用EF和context.ExecuteStoreQuery,您仍然通过DataTableSqlParameterSqlDbType.Structured

如果您不使用SQL Server 2008,则需要存储过程,其中一个大的nvarchar参数将整个列表传递为逗号分隔的字符串。您的存储过程将首先将parse this list临时表中,然后以与表值参数相同的方式处理计算。

+0

希望创造奇迹 – 2011-05-22 21:26:16

+0

我无法让你的建议工作,并打开了另一个问题,看看是否有答案。请参阅:http://stackoverflow.com/questions/8157345/entity-framework-stored-procedure-table-value-parameter – 2011-11-16 19:17:31