我有一个实体框架模型,在这里我有一个具有以下关系的用户:
User 1-* Test
每个测试具有以下关系:
Test 1-1 Course
Test 1-* TestEvent
我有一个返回用户的服务,并且在我的应用程序的不同位置,我想热切地获取各种关系。我目前正在获取所有关系:
var result = (from appUser in context.AppUsers.Include("Tests.Course")
.Include("Tests.TestEvents")
where appUser.Login.ToLower() == loginName.ToLower() &&
appUser.IsDeleted == false
select appUser).FirstOrDefault();
我不想总是返回链接到Test或TestEvents的课程。如何构建ObjectQuery并根据需要动态添加Include语句,而不是使用一系列if else语句。
嗯,由于Include
返回一个IQueryable<T>
(可链接的LINQ),所以我将使用一种简单的扩展方法: