繁体   English   中英

使用实体framework4执行自定义sql

[英]execute custom sql with entity framework4

我必须从数据库接收特定于用户的工作人员。

所有用户的过滤器都是不同的,所以必须将所有订单发送到英国,其他所有订单都运送到其他5个国家,一个完成所有高价值的商品,一个包含包含> 10个商品的订单等。

那么,我想出了这个想法(如果你有一个更好的想法就拍它!)

我为每个用户创建一个视图,所有视图返回相同的数据,但过滤器是不同的。

在ado.net中我会做这样的事情:

string sql = "select * from vwWorkOrders" + userName;
[rest of the ado.net here]

但现在我正在使用ef4,我想知道这种代码的等价物是什么。

您可以使用ExecuteStoreQuery方法,如以下示例所示:

context.ExecuteStoreQuery<vwWorkOrder>(sql);

此方法允许您执行存储SQL并获取强类型结果。
如果您需要传递一些参数,只需在ExecuteStoreQuery的调用中传递必要的ObjectParameter实例。

您可以使用eSQL,它可以让您的查询更加灵活。 您可以预先下载LinqPad来玩它。

// whereClause is a string
string query = string.Format("select * from ObjectContext.vwWorkOrders where {0}", whereClause);

然后只需使用EntityConnectionEntityCommand类来执行命令并以与ADO.NET完全不同的方式循环结果。

编辑:我刚刚看到你的评论; 我认为你的例子中有一个拼写错误。 您正在尝试实现的更合适的代码段:

// userName is a string, ie "Michel"
string query = string.Format("select * from ObjectContext.vwWorkOrders{0}", userName);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM