天天看点

.net 报错汇总——持续更新

1.未能找到 CodeDom 提供程序类型“Microsoft.CodeDom.Providers.DotNetCompilerPla

PM> Install-Package Microsoft.CodeDom.Providers.DotNetCompilerPlatform      

2.数据库乱码

连接字符串中添加charset=utf8      

3.Void System.Data.Entity.Infrastructure.DbEntityEntry`1.set_State(System.Data.EntityState)'

保证项目使用的EF与Model层、DAL层一致      

4.EF更新失败

public void Edit(T model, string[] propertyName)
        {
            if (model == null)
            {
                throw new Exception("model必须为实体的对象");
            }
            if (propertyName == null || propertyName.Any() == false)
            {
                throw new Exception("必须至少指定一个要修改的属性");
            }
            //将model追加到EF容器
            var entry = DataContext.Entry(model);

            foreach (var item in propertyName)
            {
                entry.Property(item).IsModified = true; 
            }
            SaveChanges();
        }      

4.LOEDB未注册

具体原因是当前项目使用的OLEDB位数与系统位数不一致,只需要将原32位的换成64位的,或者反过来即可。有一些老的项目可能由于编译了依赖,
所有系统所安装的位数对其无影响,随后导致了老的项目可以正常运行,而新项目无法运行的问题。      

 5.ef 因为它有一个 DefiningQuery,而 <ModificationFunctionMapping> 元素中没有支持当前操作的 <InsertFunction> 元素

表添加主键      

6. EF读缓存脏数据,禁止缓存(更新数据后,数据库中已修改,界面显示了旧数据)

EF上下文帮助我们提高性能,但有些情况下会导致读脏数据的问题
可以使用DataContext.Set<T>().AsNoTracking()来处理
具体位置自行调整      

 7.混合模式程序集是针对“v2.0.50727”版的运行时生成的,在没有配置其他信息的情况下,无法在 4.0 运行时中加载该程序集

修改配置文件,注意标红处
<startup useLegacyV2RuntimeActivationPolicy="true">
    <supportedRuntime version="v4.0" sku = ".NETFramework,Version=v4.0"/>
    <supportedRuntime version="v2.0.50727"/>
</startup>      

8. dotNetCore报错HTTP Error 502.5 - Process Failure

通过CMD命令where dotnet查询本地安装路径
随后将程序的web.config中processPath="dotnet"需改为完整的路径processPath="C:\Program Files\dotnet\dotnet.exe"

仍然失败的情况需要更新windows补丁,地址如下
https://support.microsoft.com/en-us/help/2533623/microsoft-security-advisory-insecure-library-loading-could-allow-remot      

 9.System.Web.Http;、 System.Web.Http.SelfHost;找不到

通过nuget安装
Microsoft.AspNet.WebApi.Core
Microsoft.AspNet.WebApi.SelfHost      

10.找不到System.Net.Http

项目转成.net4.5,在框架中添加引用即可      

 11.Correlates the elements of two sequences based on key equality

left join条件为多个字段的时候要保证对比的字段名称一致
from a in db.a
join b in db.b
on new { equipid=a.machine_id, name=a.spindle_name } equals new      

继续阅读