0
私は2つのリポジトリ(PostRepositoryとAlbumRepository)を持っていて、どちらも別のPublicationRepositoryから継承しています。あなたが見ることができるように、私はこれらの予測リポジトリの継承リファクタリング
return queryBase.Select(x => new NewsFeed
{
Id = x.PublicationID,
Title = x.Title,
Content = x.Content,
CreatedDate = x.CreatedDate,
Link = x.Link,
Type = NewsFeedType.Post,
PostType = x.PostType,
OwnerId = x.UserID.HasValue ? x.UserID.Value : 0,
OwnerFirstName = x.User != null ? x.User.FirstName : "",
OwnerLastName = x.User != null ? x.User.LastName : "",
OwnerProfilePicture = x.User != null ? x.User.PhotoPath : "",
CommentsCount = x.PublicationComment.Count(),
ILike = x.Consultation.Any(c => c.ViewedByID == userId && c.ILike == true && c.DeletedFlag != true),
IsSignaled = x.Consultation.Any(c => c.ViewedByID == userId && c.IsSignaled == true && c.DeletedFlag != true),
RecommendationCount = x.Consultation.Count(c => c.DeletedFlag != true && c.ILike == true),
TargetPopulations = x.Access.Select(a => a.Population.PopulationName).ToList(),
OwnerIsMyManager = promoManagerIds.Contains(x.UserID)
});
そしてAlbumRepositoryでは、私はこれらの
return queryBase.Select(x => new NewsFeed
{
Id = x.PublicationID,
Title = x.AlbumName,
CreatedDate = x.CreatedDate,
Type = NewsFeedType.Album,
OwnerId = x.UserID.HasValue ? x.UserID.Value : 0,
OwnerFirstName = x.User != null ? x.User.FirstName : "",
OwnerLastName = x.User != null ? x.User.LastName : "",
OwnerProfilePicture = x.User != null ? x.User.PhotoPath : "",
CommentsCount = x.PublicationComment.Count(),
ILike = x.Consultation.Any(c => c.ViewedByID == userId && c.ILike == true && c.DeletedFlag != true),
IsSignaled = x.Consultation.Any(c => c.ViewedByID == userId && c.IsSignaled == true && c.DeletedFlag != true),
RecommendationCount = x.Consultation.Count(c => c.DeletedFlag != true && c.ILike == true),
TargetPopulations = x.Access.Select(a => a.Population.PopulationName).ToList(),
AlbumPhotoPaths = x.AlbumPhoto.Where(a => a.DeletedFlag != true).Select(a => a.AlbumElementPath).ToList()
});
を持っているPostRepositoryで
、繰り返しのコードの多くはここにあります。すべての一般的な予測をベースリポジトリに移動し、特定のリポジトリ内の特定のもののみを保持する方法はありますか?
は、エンティティ(郵便またはアルバム)、ではないのリポジトリである必要があります。 –