Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将导航属性与行连接_C#_Linq_Dapper - Fatal编程技术网

C# 将导航属性与行连接

C# 将导航属性与行连接,c#,linq,dapper,C#,Linq,Dapper,我尝试使用LINQ加入导航属性。 这是我的密码 var activities = Using<GetActivitiesForUser>() .Execute(User.DisplayAs, User.MarketId); var contacts = Using<GetContactsForUser>() .Execute(User.DisplayAs, User.MarketId); var model =

我尝试使用LINQ加入导航属性。 这是我的密码

    var activities = Using<GetActivitiesForUser>()
        .Execute(User.DisplayAs, User.MarketId);

    var contacts = Using<GetContactsForUser>()
        .Execute(User.DisplayAs, User.MarketId);

    var model = from activity in activities
                join contact in contacts
                on activity.ContactId equals contact.ContactId
                select activity; 

但是我想通过一个连接来实现这一点。

看起来您正在使用实体框架

试一试


查询结果中必须同时包含活动和联系人:

来自活动中的活动
在联系人中加入联系人
在activity.ContactId上等于contact.ContactId
选择新建{活动,联系人};
或者选择两个对象的各个特性

在评论后编辑

您将无法让整洁填充activity.contact,这是刻意保持简单的。您可以做的是在结果中循环并自己设置属性:

foreach(模型中的var anon)
{
anon.activity.contact=anon.contact;
}
其中model是查询
.ToList()

另一种有效但丑陋的方式可能是:

model.Select(x=>{x.activity.contact=x.contact;return activity;}).ToList();

它会立即返回修改后的活动。这很难看,因为它滥用了一个旨在成为无状态的方法(
Select
),但是是的…

您希望查询的结果是什么?这个
使用
方法中有什么?使用方法用于调用我的服务层以获取数据。这是一个自定义方法,与我想做的连接无关。对不起,我使用dapper,所以延迟加载不是一个选项。没有帮助。我需要做活动。联系人=联系人
foreach(var activity in activities)
{
activity = from contact in contacts
where contact.ContactId=activity.ContactId
select contact
}
var model = activities.Include("Contact");