Ef core 2个不同的表到同一个dto
Ef core 2 diferent tables to same dto
我正在对 IQueryable 执行 select,所以这个 IQueryable 可以来自 2 个不同的表,但 dto 是相同的。我的问题是我正在复制代码,因为每个代码都有 select。有什么方法可以创建一个通用方法来接收 IQueryable 并在其中执行 select?
你有一个接口:
interface INamed{
string Name {get; set;}
}
您有两个不同的 table 实体来实现它,因为它们都有一个名称 属性:
public class Person : INamed {
public string Name { get; set; }
}
public class Company: INamed {
public string Name { get; set; }
}
你有一个映射方法,它接受任何实现 INamed 的东西并踢出一个名称集的对象:
SomeDto Map(INamed x){
return new SomeDto { Name = x.Name }
}
并且你适当地称呼它:
context.Persons.Select(person => Map(person) );
context.Companies.Select(company => Map(company) );
我正在对 IQueryable 执行 select,所以这个 IQueryable 可以来自 2 个不同的表,但 dto 是相同的。我的问题是我正在复制代码,因为每个代码都有 select。有什么方法可以创建一个通用方法来接收 IQueryable 并在其中执行 select?
你有一个接口:
interface INamed{
string Name {get; set;}
}
您有两个不同的 table 实体来实现它,因为它们都有一个名称 属性:
public class Person : INamed {
public string Name { get; set; }
}
public class Company: INamed {
public string Name { get; set; }
}
你有一个映射方法,它接受任何实现 INamed 的东西并踢出一个名称集的对象:
SomeDto Map(INamed x){
return new SomeDto { Name = x.Name }
}
并且你适当地称呼它:
context.Persons.Select(person => Map(person) );
context.Companies.Select(company => Map(company) );