C# 如何修复此错误:并非所有代码路径都返回值

C# 如何修复此错误:并非所有代码路径都返回值,c#,asp.net,asp.net-core,server,blazor,C#,Asp.net,Asp.net Core,Server,Blazor,我的项目有客户端和服务器端两部分。在服务器端,我有一个需要查询和命令的控制器。我把它们都放进去了,并且我的命令有一个处理程序,但在我完成了处理程序之后,它抛出了一个错误,即:并非所有代码路径都返回一个值。 这是我的处理程序: public Task<ReturnCreateDataQuery> Handle(CreateCompletedActCommand request, CancellationToken cancellationToken) {

我的项目有客户端和服务器端两部分。在服务器端,我有一个需要查询和命令的控制器。我把它们都放进去了,并且我的命令有一个处理程序,但在我完成了处理程序之后,它抛出了一个错误,即:并非所有代码路径都返回一个值。 这是我的处理程序:

     public Task<ReturnCreateDataQuery> Handle(CreateCompletedActCommand request, CancellationToken cancellationToken)
    {
        var party = _dbContext.Parties.SingleOrDefault(t => t.PartyCode == request.PartyCode);
        if (party == null) throw new Exception("");

        if ((bool)request.ResonableType)
        {

            var departmentText = request.DepartmentIds.Any() ? string.Join(",", request.DepartmentIds.Distinct().OrderBy(t => t)) : string.Empty;
            var cartableActs = new List<CartableActModel>();

            var cartable = new CartableStateModel()
            {

                ClaimId = request.ClaimId,
                CreationDate = DateTime.Now,
                StatusCode = (int)Enumeration.StateType.Compeleted,
                PreviouseCartableStateId = request.CartableStateId
            };

            var cartableAct = new CartableActCompleteModel()
            {
                ActCode = (int)Enumeration.ActType.CompleteCustomerData,
                ActorId = party.PartyId,
                CartableStateId = cartable.CartableStateId,
                ChangeDate = DateTime.Now,
                ClaimSubjectId = request.ClaimSubjectId,
                ClaimType = request.ClaimType,
                Departments = departmentText,
                ExpertPartyId = request.ExpertPartyId,
                ResonableType = request.ResonableType,
                SubClaimSubjectId = request.SubClaimSubjectId,
                CompletedDescription = request.CompletedDescription,
            };

            var attachments = request.Attachments.Select(t => new ActAttachmentModel
            {
                AttachmentContent = t.AttachmentContent,
                ActAttachmentId = cartableAct.CartableActId,
                ActId = cartableAct.CartableActId,
                CreationDate = DateTime.Now,
                Creator = party.PartyId,
                FileExtension = t.FileExtension,
                Title = t.Title,
                MimeType = t.MimeType
            }).ToList();

            cartableAct.ActAttachments = attachments;

            cartableActs.Add(cartableAct);

            cartable.CartableActs = cartableActs;

            _dbContext.Cartables.Add(cartable); 
            _dbContext.SaveChangesAsync(cancellationToken);
        }
        else
        {
            var cartableActs = new List<CartableActModel>();
            var cartable = new CartableStateModel()
            {
                ClaimId = request.ClaimId,
                CreationDate = DateTime.Now,
                StatusCode = (int)Enumeration.StateType.Finished,

            };

            var cartableAct = new CartableActSatisficationModel()
            {
                ActCode = (int)Enumeration.ActType.SatisficationCustomer,
                ActorId = party.PartyId,
                CartableStateId = cartable.CartableStateId,
                ChangeDate = DateTime.Now,
                IsSatisfy = false,
                SatisfyLevel = "1",
            };

            var attachments = request.Attachments.Select(t => new ActAttachmentModel
            {
                AttachmentContent = t.AttachmentContent,
                ActAttachmentId = cartableAct.CartableActId,
                ActId = cartableAct.CartableActId,
                CreationDate = DateTime.Now,
                Creator = party.PartyId,
                FileExtension = t.FileExtension,
                Title = t.Title,
                MimeType = t.MimeType
            }).ToList();

            var outBox = new OutBoxModel
            {
                SentType = "SMS",
                ClaimId = request.ClaimId,
                IsSent = false,
                PartyCode = request.PartyCode,
                IsCustomer = true

            };

            cartableAct.ActAttachments = attachments;

            cartableActs.Add(cartableAct);

            cartable.CartableActs = cartableActs;

            _dbContext.Cartables.Add(cartable);
            _dbContext.OutBoxes.Add(outBox);
            _dbContext.SaveChangesAsync(cancellationToken);
        }
    }
公共任务句柄(CreateCompletedActCommand请求,CancellationToken CancellationToken)
{
var party=_dbContext.Parties.SingleOrDefault(t=>t.PartyCode==request.PartyCode);
如果(party==null)抛出新异常(“”);
if((bool)request.ResonableType)
{
var departmentText=request.DepartmentIds.Any()?string.Join(“,”,request.DepartmentIds.Distinct().OrderBy(t=>t)):string.Empty;
var cartableActs=新列表();
var cartable=新的CartableStateModel()
{
ClaimId=request.ClaimId,
CreationDate=日期时间。现在,
StatusCode=(int)Enumeration.StateType.Completed,
PreviouseCartableStateId=request.CartableStateId
};
var cartableAct=新的CartableActCompleteModel()
{
ActCode=(int)枚举.ActType.CompleteCustomerData,
ActorId=party.PartyId,
CartableStateId=cartable.CartableStateId,
ChangeDate=DateTime。现在,
ClaimSubjectId=request.ClaimSubjectId,
ClaimType=request.ClaimType,
部门=部门文本,
ExpertPartyId=request.ExpertPartyId,
ResonableType=request.ResonableType,
SubClaimSubjectId=request.SubClaimSubjectId,
CompletedDescription=请求。CompletedDescription,
};
var attachments=request.attachments.Select(t=>newactAttachmentModel
{
AttachmentContent=t.AttachmentContent,
ActAttachmentId=cartableAct.CartableActId,
ActId=cartableAct.CartableActId,
CreationDate=日期时间。现在,
创建者=party.PartyId,
FileExtension=t.FileExtension,
Title=t.Title,
MimeType=t.MimeType
}).ToList();
cartableAct.ActAttachments=附件;
添加(cartableAct);
cartable.CartableActs=CartableActs;
_dbContext.Cartables.Add(cartable);
_SaveChangesSync(cancellationToken);
}
其他的
{
var cartableActs=新列表();
var cartable=新的CartableStateModel()
{
ClaimId=request.ClaimId,
CreationDate=日期时间。现在,
StatusCode=(int)Enumeration.StateType.Finished,
};
var cartableAct=新的cartableAct满意度模型()
{
ActCode=(int)枚举.ActType.SatisfionCustomer,
ActorId=party.PartyId,
CartableStateId=cartable.CartableStateId,
ChangeDate=DateTime。现在,
IsSatisfy=false,
SatisfyLevel=“1”,
};
var attachments=request.attachments.Select(t=>newactAttachmentModel
{
AttachmentContent=t.AttachmentContent,
ActAttachmentId=cartableAct.CartableActId,
ActId=cartableAct.CartableActId,
CreationDate=日期时间。现在,
创建者=party.PartyId,
FileExtension=t.FileExtension,
Title=t.Title,
MimeType=t.MimeType
}).ToList();
var outBox=新的OutBoxModel
{
SentType=“SMS”,
ClaimId=request.ClaimId,
IsSent=false,
PartyCode=request.PartyCode,
IsCustomer=true
};
cartableAct.ActAttachments=附件;
添加(cartableAct);
cartable.CartableActs=CartableActs;
_dbContext.Cartables.Add(cartable);
_dbContext.outBox.Add(发件箱);
_SaveChangesSync(cancellationToken);
}
}

我不知道如何修复此错误我搜索了很多源代码,但我不知道如果您知道此错误,应该返回哪个值,我将感谢您。

更改您的metod标头

 public async Task Handle(CreateCompletedActCommand request, CancellationToken cancellationToken)
    {
....your code
}

代码中没有返回类型为
ReturnCreateDataQuery
的部分。如果你真的不需要归还任何东西。像这样使函数返回void<代码>公共任务句柄(…)此外,如果返回任务,则通常还会出现一个“异步”修饰符以及一个或多个“等待”调用