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;

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

转载于:https://www.cnblogs.com/zwyAndDong/p/8818142.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值