zoukankan      html  css  js  c++  java
  • abp 从4.3升级到5.4 从入门到放弃

    如果你也是和我一样将项目从.net core2.X 升级到3.X,我这就劝你放弃,差异太大,改不完的bug,尤其很多插件,可能是3.x太新。还没有或者是,根本不需要,总之升级之后,你会发现打出都要改,最后我决定,还是用以前的版本,没有插件的地方就自己写好了

     (实际上,我现在又把它捡回来了,你说贱不贱,主要是有个大牛网页说要跟我一起写公共插件然后一起用

    现在记录一下 遇到的几个问题:

    1、前端返回的格式被修改为小驼峰格式

    解决办法:

                services.AddControllers().AddNewtonsoftJson();
                services.PostConfigure<MvcNewtonsoftJsonOptions>(options => {
                    options.SerializerSettings.ContractResolver = new MyCustomContractResolver();
                });
                services.Configure<MvcNewtonsoftJsonOptions>(options => {
                    options.SerializerSettings.ContractResolver = new MyCustomContractResolver();
                });
    

      一定要都加上,不然,你会发现有的请求返回的还是小驼峰格式。

    MyCustomContractResolver的代码为:
    public class MyCustomContractResolver : AbpContractResolver
        {
    
            protected override void ModifyProperty(MemberInfo member, JsonProperty property)
            {
                if (property.PropertyType != typeof(DateTime) && property.PropertyType != typeof(DateTime?))
                { return; }
    
                property.Converter = new AbpDateTimeConverter()
                { DateTimeFormat = "yyyy-MM-dd HH:mm:ss" };
    
            }
        }

    2、ajax请求后台无法获取
    这个可是把我绕了一圈,后来发现,同一个方法,有的几个页面是可以请求的,仔细对比,原来有的页面用的是@Url.Action("XXX")这种,有的是直接写地址,用@Url.Action("XXX")这种,没有自动生成域(我的页面划分了很多域),那么问题就比较简单了,
    找到Startup中的路由规则,原来那里面的路由规则是将域的路由写在了默认路由的后面,修改一下顺序就好了。

    3、
    Processing of the LINQ expression 'DbSet<WarnProcess>
        .Where(t => (Nullable<bool>)t.IsActive == __input_IsActive_0)
        .OrderByDescending(t => t.CreationTime)
        .GroupJoin(
            outer: DbSet<HandleFlow>
                .Where(t => t.CreatorUserId == __input_HandleUserId_1), 
            inner: model => model.Id, 
            outerKeySelector: ha => ha.ProcessId, 
            innerKeySelector: (model, handle) => new { 
                model = model, 
                handle = handle
             })' by 'NavigationExpandingExpressionVisitor' failed. This may indicate either a bug or a limitation in EF Core. See https://go.microsoft.com/fwlink/?linkid=2101433 for more detailed information.
    

      这个就查询的语法有错误,全部注释后一点一点的打开,定位问题。有一些是自己写错了,但是在.net core 2.2下会正确编译,所以不容易发现,有一些是2.2可以这样用。3.X不行,具体看自己的代码逻辑,我也是一个一个的改。

    4、直接上图

     相关解决方法:

    https://www.it1352.com/1558075.html

    我觉得说的很明白,3.1已经兼容了,但问题是,我的项目目前的框架就是3.1,那么问题是怎么出来的呢,伤心啊,框架太新了,还找不到道友

  • 相关阅读:
    QLineEdit控件只能输入数字--QValidator结合正则
    谈 Linux,Windows 和 Mac (转自 王垠)
    看了王垠的文章《对Rust语言的分析》
    unsigned int 无符号整型的使用
    Qt布局Layout设置完全填充(设置Layout的Margin值)
    C#批量删除Mysql中相同前缀的表格
    libusb
    NPOI -- 读取excel表格中的时间格式
    spring项目启动执行
    kafka安全(一)SASL+ACL
  • 原文地址:https://www.cnblogs.com/bamboo-zhang/p/12788528.html
Copyright © 2011-2022 走看看