this.Property(t =>t.TipID).HasDatabaseGeneratedOptio(DatabaseGeneratedOption.Identity)
此时生成的SQL语句和自增长的有所不同
exec sp_executesql N'declare @generated_keys table([TipID] uniqueidentifier)
insert [dbo].[Tips]([Description])
output inserted.[TipID] into @generated_keys
values (@0)
select t.[TipID]
from @generated_keys as g join [dbo].[Tips] as t on g.[TipID] = t.[TipID]
where @@ROWCOUNT >0',N'@0 nvarchar(max) ',@0=N'testing'
注意:这里定义了一个表变量@generated_keys,插入的时候将id输出给@generated_keys表的字段,
这里values (@0)是针对insert [dbo].[Tips]([Description]) 而言的,先执行insert
再执行output inserted.[TipID] into @generated_keys 将插入的id输出到@generated_keys 中
EF真的是太强大了,可以模仿EF生成SQL语句,这极大地提升本人写SQL的水平,Entity Framework生成的SQL是很有水平的!
这样就可以返回刚新插入的主键值!
有点类似JAVA用的UUID,你说的是Uniqueidentifier这个数据类型吧?其实他是对一列数据的描述,这列数据可以把表中数据设定具有唯一性,oracle中建议你使用MD5码这样的,你可以把数据都拿过来放到16个字节字段里面欢迎分享,转载请注明来源:内存溢出
评论列表(0条)