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.,在框架中添加引用即可
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 { b.equipid,b.name }