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
Linq 使用Mapster调整导航属性_Linq_Entity Framework Core_Mapster - Fatal编程技术网

Linq 使用Mapster调整导航属性

Linq 使用Mapster调整导航属性,linq,entity-framework-core,mapster,Linq,Entity Framework Core,Mapster,我有一个Post类,其中包含User属性。当我尝试获取所有帖子时,我还希望将User映射到UserDto对象 public class Post { public Guid Id {get; set;} public string Content {get;set;} public User User {get; set;} } var result = await _ctx.Posts.Include(u => u.User.Adapt<UserDto&

我有一个
Post
类,其中包含
User
属性。当我尝试获取所有帖子时,我还希望将
User
映射到
UserDto
对象

public class Post {
    public Guid Id {get; set;}
    public string Content {get;set;}
    public User User {get; set;}
}


var result = await _ctx.Posts.Include(u => u.User.Adapt<UserDto>()).ToListAsync()
公共类职位{
公共Guid Id{get;set;}
公共字符串内容{get;set;}
公共用户{get;set;}
}
var result=wait _ctx.Posts.Include(u=>u.User.Adapt()).ToListAsync()
Include
中进行调整会引发以下错误:

包含中使用的Lambda表达式无效


您似乎混淆了
Include
,因为
entityframework
Mapster
都具有该功能。您向我们展示的
包含
属于
实体框架

因此,首先需要使用
Include
检索数据,如下所示:

var result = await _ctx.Posts.Include(u => u.User).ToListAsync();
另一方面,您需要设置mapster配置:

TypeAdapterConfig<Post, PostDto>.NewConfig()
    .PreserveReference(true);

TypeAdapterConfig<User, UserDto>.NewConfig()
    .PreserveReference(true);

您似乎混淆了
Include
,因为
entityframework
Mapster
都具有该功能。您向我们展示的
包含
属于
实体框架

因此,首先需要使用
Include
检索数据,如下所示:

var result = await _ctx.Posts.Include(u => u.User).ToListAsync();
另一方面,您需要设置mapster配置:

TypeAdapterConfig<Post, PostDto>.NewConfig()
    .PreserveReference(true);

TypeAdapterConfig<User, UserDto>.NewConfig()
    .PreserveReference(true);

如果没有mapster配置,只要Dto属性名与源对象名匹配,就可以正常工作。如果没有mapster配置,只要Dto属性名与源对象名匹配,就可以正常工作。这是预期的吗?