【发布时间】:2016-12-07 10:24:14
【问题描述】:
我对 Linq 相当陌生,它似乎很容易使用,但在尝试从由其他 3 个表链接/约束的表中提取值时遇到问题。
我的 SQL DB 中有这个:
我正在使用 Asp.Net 4 和 Entity Framework 6。
我将“数据库名称”作为参数。
我最终想要获得分配给此名称的 SubscriptionRef。
我可以逐步执行此操作(即使用多个 linq),但我认为仅使用 1 个 linq 语句会看起来很“干净”。
我已经做到了:
var names = o.RegisteredNames.Where(d => d.DatabaseName == DBName).Where(d => d.ClientNames.Where(f => f.ClientId == f.Client.ClientId).FirstOrDefault();
但我得到了错误:
Cannot implicitly convert type 'Services.ClientName' to 'bool'
【问题讨论】:
-
.Where()返回一个 IEnumerable,其中包含通过该子句的元素。我想你可能想看看.Include() -
@Bas 谢谢 - 我现在就这样做
-
我会说一步一步地做这个比一个巨大的声明更干净。首先它更容易阅读,其次它更容易调试。
-
@ThomasSchneiter 感谢值得考虑的一点。我现在处于需要知道如何做到这一点的位置,但最终可能会按照你的建议做:)
-
如果我们有您的客户和服务对象模型,这会有所帮助。
标签: c# asp.net entity-framework linq