服务层应该只返回模型对象吗?网络上有一些关于此问题的帖子(这里和这里是一些SO帖子),但没有一个好的例子。
我看到的都是像这样的东西:
服务应该只关心问题领域,而不是呈现结果的视图。返回值应该用领域对象而不是视图来表达。
我感觉我在这里漏了什么。
看下面的例子...假设我想返回所有电影的列表,但我需要一个布尔标志-类似于hasLike
- 来显示我以前是否喜欢它。如何从服务层仅返回模型?
简而言之...如何按照这种方法从服务层返回元信息
?是否可能?
模型
public class Person
{
public int PersonID { get; set; }
public string Name { get; set; }
public ICollection<Movie> FavoriteMovies { get; set; }
public ICollection<MovieLikes> Likes { get; set; }
}
public class Movie
{
public int MovieID { get; set; }
public string Name { get; set; }
public string Description { get; set; }
}
public class MovieLike
{
public int MovieLikeID { get; set; }
public int PersonID { get; set; }
public int MovieID { get; set; }
public DateTimeOffset Date { get; set; }
}
服务
public class MovieService : IMovieService
{
public Movie Get(int id)
{
}
public Movie GetByName(string name)
{
}
public IEnumerable<Movie> GetAll()
{
return unit.DbSet<Movie>();
}
}