我正在使用MV5
和Entity Frameowrk
开发应用以连接到SQL Server
数据库
我需要做一个Insert
,其中ID就是这样。
从表中选择max(id)+1,其中field_id = @ID。
我们的想法是在一次交易中完成。
是否可以在实体框架中执行此操作,或者我应该使用Store Procedure
?
答案 0 :(得分:1)
EF将您提供的C#表达式编译到SQL中,然后执行生成的SQL。因此,您可以在LINQ中编写这样的查询,实际上这可以在单个"调用"到数据库:
long id = MyDbContext.MyDbSet.Max(entity => entity.Id) + 1;
请注意,如果您这样做是为了可以为新条目分配不存在的ID,则不需要。 EF会为您处理此问题,只要该字段名为Id且类型为long。只是不要给它任何值。