繁体   English   中英

如何将linq-to-sql与参考一起使用?

[英]How can I use linq-to-sql with references?

我使用Entity Framework 6,并从数据库派生了我的模型。 我没有将选项设置为“包括外键列”。

我可以向该模型添加新实体,以设置外键引用,我使用对其他对象的引用,如下所示:

client.Country = country;

尝试使用引用查询模型时遇到问题:

ctx.Client.Where(c => c.Country == country);

导致错误“无法创建类型为“国家类型”的常量值。仅支持基本类型”。

使用外键的数字ID

ctx.Client.Where(c => c.id_Country == country.idCountry);

无法工作,因为我选择不包括外键列。


我发现了一个丑陋的解决方法,将其全部加载到内存中并在其中进行过滤,使用参考

 List<Client> clients = ctx.Clients.ToList(); clients.Where(c => c.Country == country); 

但这不是很优雅。

任何想法? 显然,包括外键是最简单的,但是如果没有,则该模型看起来要干净得多。

提前致谢!

您可以为此使用[reference property].[key property]

c => c.Country.id_Country == country.idCountry

EF足够聪明,可以将其识别为LINQ to Entities查询中的FK属性访问器,并将其转换为FK列名称。

换句话说,在L2E查询中, c.Country.id_Countryc.id_Country FK属性(如果存在)相同。

暂无
暂无

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

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