0
我正在創建一個使用實體框架數據庫第一種方法的項目。 .edmx
目前已生成並位於我的數據訪問層項目中。使用存儲過程的實體框架數據庫第一種方法
我已經創建了一個函數導入調用GetAllTeam
和相應的複雜類型調用TeamResult
。我試圖通過調用我的函數導入,將數據返回到業務層,在數據訪問層中填充複雜類型。
在我的業務層中,我將複雜類型映射到業務對象並返回到我的web api。我想知道我的方法是否正確。我是否需要創建一個獨立的類項目,稱爲具有稱爲團隊的類的實體,然後創建類型爲TeamResult
複雜類型的AutoMap,然後返回到業務層,或者直接將TeamResult
發送到業務層。
讓我也知道這種方法是否存在其他問題。
請參考下面
數據訪問層的代碼:
public class TeamRepository
{
public IEnumerable<TeamResult> GetAllTeam()
{
using (var mcrContext = new MCREntities1())
{
return (from team in mcrContext.GetAllTeam()
select new TeamResult
{
TeamName = team.TeamName,
TeamDescription = team.TeamDescription,
Code = team.Code
}).ToList();
}
}
}
業務邏輯層:
public class TeamService : ITeamService
{
private readonly ITeamRepository _teamRepository;
public TeamService(ITeamRepository teamRepository)
{
_teamRepository = teamRepository;
}
public IEnumerable<TeamDto> GetTeam()
{
IEnumerable<TeamResult> team = _teamRepository.GetAllTeam();
if (team != null)
{
foreach (var t in team)
{
yield return Mapper.Map<TeamDto>(t);
}
}
yield break;
}
}
public class DomainToDtoMapping : Profile
{
public DomainToDtoMapping()
{
CreateMap<TeamResult, TeamDto>().ReverseMap();
}
public override string ProfileName
{
get { return "DomainToDtoMapping"; }
}
}
的Web API:
public class TeamController : ApiController
{
private readonly ITeamService _teamServices;
public TeamController(ITeamService _teamServices)
{
_teamServices = teamServices;
}
public HttpResponseMessage Get()
{
var teams = _teamServices.GetTeam();
if (teams != null)
{
var teamEntities = teams as List<TeamDto> ?? teams.ToList();
if (teamEntities.Any())
return Request.CreateResponse(HttpStatusCode.OK, teamEntities);
}
return Request.CreateErrorResponse(HttpStatusCode.NotFound, "Team not found");
}
}