EF踩坑记录
EF链接字符串问题
错误提示:System.Data.Entity.Infrastructure.UnintentionalCodeFirstException:“正在 Code First 模式下将此上下文与从 EDMX 文件生成的用于 Database First 或 Model First 开发的代码一起使用。这将无法正常工作。若要解决此问题,请不要删除引发此异常的代码行。如果希望使用 Database First 或 Model First,请确保 Entity Framework 连接字符串包括在启动项目的 app.config 或 web.config 中。如果要创建你自己的 DbConnection,请确保它是 EntityConnection 而不是某种其他类型的 DbConnection,并且确保将其传递到接受 DbConnection 的基本 DbContext 构造函数之一。若要了解 Code First、Database First 和 Model First,请参阅此处的 Entity Framework 文档: http://go.microsoft.com/fwlink/?LinkId=394715”
数据库无主键插入报错
错误提示:无法更新 EntitySet“实体名称”,因为它有一个 DefiningQuery,而 <ModificationFunctionMapping> 元素中没有支持当前操作的 元素。
Linq中的日期条件判断
DbFunctions.DiffDays(x.CreatedTime, DateTime.Now) == 0 注意只能从 LINQ to Entities 调用此函数。
webconfig中EF链接字符串问题
报错: System.Configuration.ConfigurationErrorsException 项“XXX” 已添加
解决:增加 <clear />
<connectionStrings>
<clear />
<add name=“XXX” connectionString=“XXXXXXXXXXXXXXXXXXXXXX” providerName=“System.Data.EntityClient” />
</connectionStrings>
db.Database.SqlQuery(sql, param).ToList();
此方法完全重复的数据会被自动distinct。
db.Entry(model).State = System.Data.Entity.EntityState.Modified;
当对象属性值无变化时,db.Savechanges()不会执行更新,返回0,设置此属性可以强制更新。