Linq To EF 使用小知识(添加记录后获取添加的自增ID和叫“ID”的列不是自增列不让插入的问题)
来源:互联网 发布:淘宝网店怎么设置客服 编辑:程序博客网 时间:2024/05/17 03:25
1:添加记录后,如何获取新添加的ID的值
比如,一个实体 TestEntity 对应一个表TestEntity(ID主键自增,Name,age),使用linq to ef 添加一条记录后,如何获取新记录的ID值?如下代码:
var te = new TestEntity (){ Name = "名字", Age = 21};using (EFDbContext context = new EFDbContext()){ context.TestEntity .Add(te); context.SaveChanges(); return te.ID;}
调用SaveChanges()之后,ef.ID的值就是数据库中新加记录对应自增标识列的值。Linq to ef智能地判断出ID就是自增主键标识列。 他给我们返回了。
2:列名叫“ID”的列,它不是自增列,linq to ef不让插入的问题
如标题,就是,列名叫“ID”的列,它不是主键,也不是主键,linq to ef不让插入。我已经给ID赋值了 但它一直提示 ID不能为NULL ,打断点,看了,也有值!
代码走到SaveChanges(),就报异常,提示ID不能为空!超蛋疼...
原因:默认情况,linq to ef认为只要实体类中有ID属性,数据库对应的是一定是自增标识列。
解决方式:
1)第一步
因为EFDbContex继承自Context类,所以,我们需要从新对它这个叫OnModelCreating的虚函数进行实现
protected override void OnModelCreating(DbModelBuilder modelBuilder){modelBuilder.Entity<TestEntity>().Property(p => p.ID).HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);}
2)第二步
在实体类叫ID的属性上加标记实现(记得添加引用):
public class TestEntity { [DatabaseGenerated(DatabaseGeneratedOption.None)] public int ID { get; set; } public string Name { get; set; } public int Age { get; set; } }OK。
0 0
- Linq To EF 使用小知识(添加记录后获取添加的自增ID和叫“ID”的列不是自增列不让插入的问题)
- Linq To EF 使用小知识(添加记录后获取添加的自增ID和叫“ID”的列不是自增列不让插入的问题)
- mybatis如何获取插入记录后的自增ID
- SQLite 数据库获取添加记录后自增长的ID
- mysql插入数据,获取最新插入的ID(自增列)
- mysql插入数据,获取最新插入的ID(自增列)
- Sql Server添加一条记录后获取自增的ID
- linq to sql插入操作取回自增的ID
- MyBatis插入记录获取自增的ID(MySQL)
- 使用SQL Server 获取插入记录后的自增ID(自动编号)
- linq to sql 插入值后,如何取回自增的ID
- linq to sql 插入值后,如何取回自增的ID
- 插入一条id自增记录返回自增后的id
- Mybatis 获取插入记录的自增ID
- VC++获取SQLSERVER 2008插入记录后的自增主键ID
- 获取插入表的自增ID问题
- 如何在PostgreSQL中添加id自增列
- SCOPE_IDENTITY、IDENT_CURRENT 和 @@IDENTITY (插入后如何获取自增列的值)
- 《程序员面试宝典》打印规律矩阵
- 单例模式的七种写法
- Socket通信(TCP)非阻塞模式-select模型
- ABAP內表中列累加的两种方法。
- 12项目四。日期时间类
- Linq To EF 使用小知识(添加记录后获取添加的自增ID和叫“ID”的列不是自增列不让插入的问题)
- xml初步学习
- java集合类详解
- PAT 1007. 素数对猜想
- 通过操作指针,与指针做函数参数'实现字串在主串中出现的次数,然后将出现的部分按照要求进行替换
- 视线跟踪-人机交互
- solaris x86安装ORACLE 11.2.0.3软件时因SWAP不足报错: INFO: ld: fatal: mmap anon failed
- Perl 十条基本模块实践
- filter在登录上的运用(自动登录)