Entity Framework 中遇到的一些小问题

一、在多表关联中,一个表中有另一个表的model累,在Include方法里提示lambda表达式不是委托类型,这时候需要using System.Data.Entity;

二、插入数据时,主键并非自增的时候,这个时候插入会报错,无论你怎么赋值ID,ef都是取不到的

两种解决办法:

1.modelBuilder.Entity<PostBody>().Property(p => p.ID)
.HasDatabaseGeneratedOption(DatabaseGeneratedOption.None); 标记主键属性

2.在model类上标记属性

public class Model
{
[DatabaseGenerated(DatabaseGeneratedOption.None)]
public int ID { get; set; }
}

三、修改的时候这样写有时候会发现数据库数据没有跟新

var token = ctx.RedAccessTokens.AsNoTracking().Where(e => e.Comid == comid).FirstOrDefault();
token.AccessToken = AccessToken;
token.Expiresin = Expiresin;
token.CreateTime = DateTime.Now.ToString();
ctx.SaveChanges();

这时候需要在ctx.SaveChanges();之前把改实体模型状态改为,未更新

ctx.Entry(token).State= System.Data.Entity.EntityState.Modified;

这时候数据库数据就会更新了

posted @ 2018-04-13 09:26  行走在0和1之间  阅读(148)  评论(0编辑  收藏  举报