Linq to Entity 中多个国家/地区的 lambda 表达式

发布于 2024-10-07 02:49:25 字数 374 浏览 5 评论 0原文

我有一个名为“国家/地区”的字段。 现在我必须根据匹配的国家/地区过滤记录。

当我必须过滤单个国家/地区的记录时,我使用 lambda 表达式,如下所示。

string strCountry = "USA";
var data = entities.Documents.Where(p => p.Country == strCountry);

现在我有以下国家/地区列表。我想知道如何过滤此国家列表的记录。

List<string> strCountry = new CacheUser().GetUserCountry();

感谢您的回复。

谢谢

I have a field called Country.
Now I have to filter the records based on the matching country.

When I have to filter the records for single country i use the lambda expression as below.

string strCountry = "USA";
var data = entities.Documents.Where(p => p.Country == strCountry);

Now I have the list of countries as below. I am wondering how to filter the records for this Contry List.

List<string> strCountry = new CacheUser().GetUserCountry();

Appreciate your responses.

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

庆幸我还是我 2024-10-14 02:49:25

尝试:

List<string> countries = ...;
var data = entities.Documents.Where(p => countries.Contains(p.Country));

这应该会导致 SQL 中的“IN”查询。但是,您应该意识到,一旦列表中包含大量国家/地区,此操作可能会失败。我想你不能用连接来做到这一点?国家列表只有客户端知道?

Try:

List<string> countries = ...;
var data = entities.Documents.Where(p => countries.Contains(p.Country));

This should result in an "IN" query in SQL. However, you should be aware that this may fail once you get a large number of countries in the list. I assume you can't do this with a join instead? The list of countries is only known at the client side?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文