自动创建数据库和表之后,使用事务插入多张表出错 Object does not match target type. 返回
自动创建数据库和两张表 t_product 和 t_product_model
模型如下:


startup.cs 中写入自动创建数据库和表的方法

进入建表的方法

自动建库建表完成,好使,没出问题,而且修改表和字段,字段的增删都好使。
创建简单的仓储

ProductRepostory 产品仓储 继承仓储基类,两个简单的方法

ProductModelRepostory 仓储继承了 仓储基类 一个简单的添加方法

执行添加功能是要往两张表添加数据

由于程序出错,没有做事务的提交和回滚,数据库表中都没有数据。
自己经过多种测试,不是DB问题,只要不执行自动创建数据库和表,执行添加就不会出错,感觉是最后一张表没有放到映射集合中,导致添加表数据就找不到映射类。大神们来帮帮忙。
错误报告:
System.Reflection.TargetException: Object does not match target type.
at System.Reflection.RuntimeMethodInfo.CheckConsistency(Object target)
at System.Reflection.RuntimeMethodInfo.InvokeArgumentsCheck(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at System.Reflection.RuntimePropertyInfo.GetValue(Object obj, BindingFlags invokeAttr, Binder binder, Object[] index, CultureInfo culture)
at System.Reflection.RuntimePropertyInfo.GetValue(Object obj, Object[] index)
at SqlSugar.InsertableProvider`1.SetInsertItemByEntity(Int32 i, T item, List`1 insertItem)
at SqlSugar.InsertableProvider`1.Init()
at SqlSugar.SqlSugarProvider.CreateInsertable[T](T[] insertObjs)
at SqlSugar.SqlSugarProvider.Insertable[T](T[] insertObjs)
at SqlSugar.SqlSugarProvider.Insertable[T](T insertObj)
at SqlSugar.SqlSugarClient.Insertable[T](T insertObj)
at SqlSugar.SqlSugarScope.Insertable[T](T insertObj)
at SqlSugar.SimpleClient`1.InsertAsync(T insertObj)
at HQ.Core.Repostory.ProductModelRepostory.AddProductModel(ProductDetailDto dto) in D:\Projects\sqlsugarCode\sqlsugartest\SqlSugarTest\HQ.Core.Repostory\Repostorys\ProductModelRepostory.cs:line 19
at HQ.Core.Service.ProductModelService.AddProductModel(ProductDetailDto dto) in D:\Projects\sqlsugarCode\sqlsugartest\SqlSugarTest\HQ.Core.Service\Services\ProductModelService.cs:line 20
at HQ.Core.Service.ProductService.AddProduct(ProductDetailDto dto) in D:\Projects\sqlsugarCode\sqlsugartest\SqlSugarTest\HQ.Core.Service\Services\ProductService.cs:line 29
at HQ.Core.Webapi.Controllers.ProductController.AddProduct(RequestParam`1 request) in D:\Projects\sqlsugarCode\sqlsugartest\SqlSugarTest\HQ.Core.Webapi\Controllers\ProductController.cs:line 45
at lambda_method(Closure , Object )
at Microsoft.Extensions.Internal.ObjectMethodExecutorAwaitable.Awaiter.GetResult()
at Microsoft.AspNetCore.Mvc.Infrastructure.ActionMethodExecutor.AwaitableObjectResultExecutor.Execute(IActionResultTypeMapper mapper, ObjectMethodExecutor executor, Object controller, Object[] arguments)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeActionMethodAsync>g__Awaited|12_0(ControllerActionInvoker invoker, ValueTask`1 actionResultValueTask)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.<InvokeNextActionFilterAsync>g__Awaited|10_0(ControllerActionInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Rethrow(ActionExecutedContextSealed context)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.Next(State& next, Scope& scope, Object& state, Boolean& isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker.InvokeInnerFilterAsync()
--- End of stack trace from previous location where exception was thrown ---
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeFilterPipelineAsync>g__Awaited|19_0(ResourceInvoker invoker, Task lastTask, State next, Scope scope, Object state, Boolean isCompleted)
at Microsoft.AspNetCore.Mvc.Infrastructure.ResourceInvoker.<InvokeAsync>g__Awaited|17_0(ResourceInvoker invoker, Task task, IDisposable scope)
at Microsoft.AspNetCore.Routing.EndpointMiddleware.<Invoke>g__AwaitRequestTask|6_0(Endpoint endpoint, Task requestTask, ILogger logger)
at Microsoft.AspNetCore.Authorization.AuthorizationMiddleware.Invoke(HttpContext context)
at Swashbuckle.AspNetCore.SwaggerUI.SwaggerUIMiddleware.Invoke(HttpContext httpContext)
at Swashbuckle.AspNetCore.Swagger.SwaggerMiddleware.Invoke(HttpContext httpContext, ISwaggerProvider swaggerProvider)
at Microsoft.AspNetCore.Diagnostics.DeveloperExceptionPageMiddleware.Invoke(HttpContext context)
热忱回答(4)
-
程序猴 VIP0
2021/9/19要源码测试的加我微信 285181913
0 回复 -
fate stay night VIP0
2021/9/20你代码写错了 ,开始和提交用的是sugarscope , rollback用的是sugar
0 回复 -
程序猴 VIP0
2021/9/20@fate stay night:看到了,是我忽略 写错了,但是问题不在这里
0 回复 -
fate stay night VIP0
2021/9/20@程序猴: 如果还有问题按这个要求写个用例 https://www.donet5.com/Home/Doc?typeId=2366
0 回复